Darkside of Oktavianus

Making virus and all of them as our friends

Menghindari Delphi Killer

Posted by oktavianus pada Maret 27, 2008

Oleh Fajar Anggiawan
Published: Maret 27, 2008

Ide ini tercetus ketika membaca postingan sodara foker di forum ECHO yang isinya berupa source code untuk meng-kill program “made in delphi” menggunakan VB. Setelah saya membaca source code tersebut, konsep cara kerja program Delphi Killer tersebut tidak jauh beda dengan konsep program VB Killer, yaitu dengan mencari string handle window tertentu. Klo Delphi Killer dengan menggunakan string “TApplication” sedangkan untuk VB Killer bisa menggunakan string “ThunderRT6FormDC” dsb.

Kembali ke Delphi Killer (DK), saya mencoba mengetes program DK untuk meng-kill PCMAV, karena menurut saya ga mudah meng-kill PCMAV menggunakan FindWindow dan SendMessage dengan cara yang simple. Dan ternyata DK berhasil meng-kill proses PCMAV. Wew, bad news

Bagaimana cara menghindari DK? Setelah membaca source code DK, ternyata DK tidak bisa meng-kill program bertipe console ataupun bertipe library. Pada program yang bertipe console sepertinya sudah jelas, karena ga ada handle window nya. Pada yang bertipe library, meskipun kita menggunakan form pun tidak dapat di-kill oleh DK . Sedangkan jika kita ingin membuat program bertipe aplikasi normal yang dimana jika kita menggunakan form dapat di-kill oleh DK, maka kita memakai fungsi berikut untuk membuat window beserta komponen2 lainnya : Function WindowProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;

Pertama buka dulu Delphi (saya memakai versi 7), buat “New Application”, kemudian ditutup saja “Unit1”, pencet Ctrl-F12 trus pilih “Project1”, diunit “Project1” lah kita akan coding.

Kita akan membuat program ber-window dan sebuah button yang jka diklik menampilkan messagebox. Ini kodenya :

//—–START
Program Project1;

uses
Windows,sysutils;

var WClass: TWndClass;
hinst,handle,hButton: hWnd;
MSG: TMsg;

//fungsi membuat string menjadi random
function RandomRange(const AFrom, ATo: Integer): Integer;
begin
if AFrom > ATo then
Result := Random(AFrom – ATo) + ATo
else
Result := Random(ATo – AFrom) + AFrom;
end;

//fungsi utama yang akan diload
Function WindowProc(hWnd,Msg,wParam,lParam:Longint):Longint; stdcall;
begin
Result:=DefWindowProc(hWnd,Msg,wParam,lParam);
if MSG=$0002 then ExitProcess(hInst);
//jika button di klik
if MSG=$0111 then if lParam=HButton then begin
//tampilkan pesan
MessageBox(0,’I am Delphi!’,’Info’,MB_ICONINFORMATION )
//silahkan memanggil fungsi/prosedur disini jika perlu
end;
end;
var myClassName:string;
begin
hInst:=GetModuleHandle(nil);
with wClass do begin
//menset visual
Style:=CS_PARENTDC;
lpfnWndProc:=@WindowProc;
hInstance:= hInst;
hbrBackground:=COLOR_BTNFACE+1;
//menggenerate variabel yang berisi Handle Window secara acak
Randomize;
myClassName:=IntToStr (RandomRange(0,999999999));
lpszClassName:=pchar(myClassName);
hCursor:=LoadCursor(0,IDC_ARROW);
end;
//mulai membuat window
RegisterClass(wClass);
//disini variabel mulai dipakai
Handle:=CreateWindow(pchar(myClassName),pchar(myClassName),WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_MINIMIZEBOX or WS_VISIBLE,200,200,190,100,0,0,hInst,nil);
hButton:=CreateWindow (‘Button’, ‘Info’, WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,70,13,49, 25, handle, 0, HInst, nil);
Sendmessage(hButton,$0030,0,0);
SetTimer(Handle,0,10,nil);
while(GetMessage(Msg,Handle,0,0))do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.
//—–END

Sepertinya tidak terlalu membingungkan kode2 di atas. Jadi commentnya dikit aja ya (males)

Kemudian “Build” dan jalankan hasil program tadi (Project1.exe), kemudian jalankan program Delphi Killer, maka tadaa.. Project1.exe tidak bisa di-kill. Jika kita lihat menggunakan program tertentu, ternyata program akan menggenerate window caption dan classname secara acak pada setiap kita menjalankan program tsb. Sekarang kita dapat membuat program “made in delphi” yang mempunyai window dan komponen lainnya. Delphi Killer Bypassing

Link DK by foker: http://geocities.com/foker_rpg_m4/file/dk.zip

:::::::::::::::::::::::::
Fajar Anggiawan :::::::::
http://anggiawan.web.id :
:::::::::::::::::::::::::
Chr(87) + Chr(97) + Chr(115) + Chr(115) + Chr(46)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: