.:: Jasa Membuat Aplikasi Website,Desktop,Android Order Now..!! | | Order Now..!! Jasa Membuat Project Arduino,Robotic,Print 3D ::.

Contoh Implementasi Hooking

0 komentar


بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم
bismillaahirrahmaanirrahiim

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Assalamu'alaikum warahmatullahi wabarakatuh

Contoh Implementasi Hooking

Contoh Implementasi Hooking
Untuk penjelasan tentang Hooking, baca di artikel sebelumnya tentang 

"Manipulasi Sistem Komputer Teknik Hooking"

Berikut Ini merupakan salah satu Contoh Implementasi Hooking yang bertujuan untuk mencegah window "dihancurkan" atau ditutup pada notepad. 
Yang dibutuhkan adalah DLL yang berisi kode untuk menangkap pesan untuk "menghancurkan" window pada notepad.
Berikut Codenya:
uses
   Windows,
   Messages,
   sysutils;
type
   THookRec = record
   hTMHook : HHOOK;
   hTMWnd : KWND;
   oldProc : Integer;
end;
var
   map : DWord;
   buf : ^THookRec;
funcion PROC(nCode: Integer; wp: wParam; lp: lParam) : LongInt; stdcall;
begin
   if (nCode >= HC_ACTION) then
      if (nCode = HCBT_DESTROYWND) then 
      begin
          Result : =1;
          exit;
       end;
    Result : = CallNextHookEx(buf^.hTMHook, nCode, wp, lp);
end;

// sets up hook
function SetHook: Boolean; stdcall; export;
var
   startwnd: HWND;
begin
   try
      Result : false;
      if (not assigned (buf)) then
      begin
         map := CreateFileMapping(DWord(-1), nil, PAGE_READWRITE, 0, SizeOf(THookRec), 'Hook');
         buf := MapViewOfFile(map, FILE_MAP_ALL_ACCESS, 0, 0, 0);
         startwnd := FindWindow('Untiled - Notepad', nil);
         buf^.hTMWnd := startwnd;
         buf^.hTMHook := SetWindowsHookEx(WH_CBT, @PROC, hInstance, GetWindowThreadProcessId(startwnd, nil));
         result := true;
         end;
      except
         result := false;
         MessageBox(0, 'error in SetHook','error', MB_OK);
       end;

//removes hook
function RemoveHook: Bolean; stdcall; export;
begin
  result := false;
  if (assigned(buf)) then
  begin
    if (buf^.hTMHook <> 0) then 
        UnhookWindowsHookEx(buf^.hTMHook);
    buf^.hTMHook := 0;
    UnmapViewOfFile(buf);
    buf := nil;
    result := true;
  end;
end;

//DLL entry point
procedure DllEntry(dwReason: DWord);
begin
  Case dwReason of
      DLL_PROCESS_ATTACK:
        begin
         if (not assigned(buf)) then
           begin
              map := OpenFileMapping(FILE_MAP_ALL_ACCESS, false, 'Hook');
              buf := MapViewOfFile(map, FILE_MAP_ALL_ACCESS, 0, 0, 0);
              closeHandle(map);
              map := 0;
            end;
          end;
        DLL_PROCESS_DETACH:
          begin
            UnmapViewOfFile(buf);
            buf := nil;
           end;
        end;
  end;
  exports
     SetHook,
     RemoveHook;

//main
begin
   DisableThreadLibraryCalls(hInstance);
   DllProc := @DllEntry;
   DllEntry(DLL_PROCESS_ATTACK):
end.

simpan file tersebut ke dalam file DLL. misalnya "project2.dll"

Kemudian, buatlah program untuk memanggil fungsi yang terdapat pada DLL.
CODENYA:
procedure SetHook; external 'project2.dll';
procedure RemoveHook; external 'project2.dll';
implementation
{$R * dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
   SetHook;
end;
Procedure TForm1.Button2Click(Sender: TObject);
begin
   RemoveHook;
end;
end.

Selesai, Jalankan Notepad dan Klik tombol pertama. Kemudian, klik Exit(X) atau melalui menu File -> Exit untuk menutup Notepad. Hasilnya??? Notepad tidakan akan dapat ditutup.

Kesimpulan:
Bermain-main dengan Hooking Bukanlah hal yang mudah untuk diterapkan. Salah sedikit dalam melakukan Hooking dapat berakibat sistem pada aplikasi atau sistem operasi menjadi tidak stabil hingga mengalami crash. Namun, hooking dapat bermanfaat dalam pengembangan software hingga menjadi keamanan sistem.

Baca Juga

"Manipilasi Sistem Komputer Teknik Hooking"

       
 Lebih lanjut baca di:

MICROSOFT

CODEPROJECT 
WIKIMEDIA

Semoga bermanfaat

mozalora

Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
NB :: Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code, membeli hardware elektronika untuk kepentingan Perusahaan maupun Tugas Akhir (TA/SKRIPSI), Insyaallah Saya siap membantu, untuk Respon Cepat dapat menghubungi kami, melalui :

No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com


atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :

ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِين
Alhamdulilah hirobil alamin

وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
wassalamualaikum warahmatullahi wabarakatuh


Artikel Contoh Implementasi Hooking, Diterbitkan oleh sourcecodeaplikasi2 pada Senin, 08 April 2013. Semoga artikel ini dapat menambah wawasan Anda. Website ini dipost dari beberapa sumber, bisa cek disini sumber, Sobat diperbolehkan mengcopy paste / menyebar luaskan artikel ini, karena segala yang dipost di public adalah milik public. Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code ,Dengan Cara menghubungi saya Ke Email: Fajarudinsidik@gmail.com, atau No Hp/WA : (fajar) : 085369237896, (puat) : 085267792168.

Tawk.to