[AJUDA] Serviço do windows

Started by Anonymous, 12 de March , 2007, 01:25:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Olah...
Gostaria de sabe como faze um aplicativo em delphi roda como serviço do windows..
Ou sejah iniciar junto com o Windows Sem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...

Fico grato

Hacker Xtreme

function TXtreme.CriarServico(Nome : String; Comentario : String; Arquivo : String) : Bool;
var
 CHM, CHS : SC_Handle;
begin
 Result := False;
 CHM :=OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if (CHM > 0) then
begin
 CHS := CreateService(CHM, PChar(Comentario), PChar(Nome), SC_MANAGER_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, PChar(Arquivo), nil, nil, nil, nil, nil);
if CHS > 0 then
 Result := True
 else
  CloseServiceHandle(CHS);
  CloseServiceHandle(CHM);
end;
end;

function TXtreme.DeletarServico(Nome : String) : Bool;
var
 CHM, CHS : SC_Handle;
begin
 Result := False;
 CHM := OpenSCManager(nil, nil, SC_MANAGER_CONNECT);
if (CHM > 0) then
begin
 CHS := OpenService(CHM, PChar(Nome), $10000);
if (CHS > 0) then
begin
if DeleteService(CHS) then
 Result := True;
 CloseServiceHandle(CHS);
end;
 CloseServiceHandle(CHM);
end;
end;


Retirei do meu componente ;P, espero que te ajude hehehe

Hacker Xtreme


whit3_sh4rk

QuoteSem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...
Não é porque o executável está rodando como serviço, que ele deixará de aparecer no gerenciador de tarefas...

[]s

Anonymous

Quote from: "whit3_sh4rk"
QuoteSem aparecer no ctrl+ alt+ del e nen no msn config...
Se podesem disponibilizar um exemplo...
Não é porque o executável está rodando como serviço, que ele deixará de aparecer no gerenciador de tarefas...

[]s

Claro que desaparece, mas da pra ver clicando no botao direito em meu computador, depois gerenciar, aí abre uma pá de coisa, vai na hierarquia e procura por services, vao estar todos lá, mas tem uma pá de gente que nem conhece esse menu, aproveita e poe um nome de service igual a algum do windows... e faz ele iniciar automatico tbm né, senao de nada adianta...

whit3_sh4rk

Sonics
Rapaizin.. abra seu gerenciador de tarefa, e leia lá, tudo que estiver com nome de usuário SYSTEM, LOCAL SERVICE e NETWORK SERVICE, está rodando como serviço, mas nem por isso está invisível.

Pode-se executar a lista de serviços também através do Iniciar > Executar: services.msc.

O que você pode fazer é colocar o nome do seu executável, igual um nome de algum serviço para poder confundir o usuário.

[]s

Anonymous

Quote from: "whit3_sh4rk"Sonics
Rapaizin.. abra seu gerenciador de tarefa, e leia lá, tudo que estiver com nome de usuário SYSTEM, LOCAL SERVICE e NETWORK SERVICE, está rodando como serviço, mas nem por isso está invisível.

Pode-se executar a lista de serviços também através do Iniciar > Executar: services.msc.

O que você pode fazer é colocar o nome do seu executável, igual um nome de algum serviço para poder confundir o usuário.

[]s

Nao tenho gerenciador de tarefas, nao uso essa porcaria de SO.
Cara acontece q eu tinha lido um tutorial ensinando o processo virar service e nao aparecer no gerenciador...vai ver no windows que o maluko fez nao aparece, ou ele fez alguma gambiarra pro service nao aparecer...

TGA

TGA

Talves o que ele te mostrou era para o windows 98, segue abaixo um exemplo que deixa o Arquivo.exe
oculto nos processos do windows.

unit Unit1;

Interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class (TForm)
Button1 : TButton;
procedure FormDestroy (Sender: TObject);
procedure FormCreate (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;

var
Form1 : TForm1;

implementation

{$R *.DFM}

const
RSPSIMPLESERVICE = 1;
RSPUNREGISTERSERVICE = 0;

function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord;
stdcall; external 'KERNEL32.DLL';

procedure TForm1.FormDestroy (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPUNREGISTERSERVICE)
end;


procedure TForm1.FormCreate (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPSIMPLESERVICE)
end;


end.

Apenas testado no 98, mais no NT, XT  outros >, não funcionan.
Abraços..
"A IMAGINAÇÃO É MAIS IMPORTANTE QUE O CONHECIMENTO"
__________________________________________________________

rog

alem do mais nem todo exe pode ser lançado como serviço

rog
realty.sys is corrupt :  reboot the universe (Y/N)

Hacker Xtreme

> rog
acho que os softs podem ser lançados como serviço sim..

> TGA
este code só funciona no 98, isso se não dar pau, pois, quando eu usava o 98 eu  testei isso e mesmo assim deu pau, mais pra esconder do 98 somente um "Application.ShowMainForm := False" resolve.

> Tio Whit3
Você esta extremamente certo, a única diferença entre "Run e Services" é que o Run se a pessoa for esperta ela acha dele seu trojanzinho na hora, agora se for no services ela vai ficar loca, pois, ela não pode desativar tudo hehe.

> Geral ( Todos )
Não tem metodo que deixe totalmente invisivel sempre vai ter metodos que deixe qualquer coisa visivel ^^.

by Xtreme

Anonymous

TGA eu realmente nao lembro :\ pode ser q seja mesmo, me parece q eu tentei compilar o code no winxp e nao funcionou :\ , faz tempo, vo ver se acho novamente esse tutorial...