KEY LOGGER (KEYSTROKE LOGGER) DEFINITION
Adalah suatu program yang berjalan di belakang sistem (Background),
merekam semua tombol. Sekali Key Logger dijalankan, maka otomatis akan
bersembunyi di dalam mesin untuk mencatat semua data atau mengirimkan
datanya secara langsung ke pemilik Key Logger.
Pemilik
Key Logger kemudian membaca data yang didapatkan tersebut dengan teliti
dengan harapan menemukan kata sandi (Password) atau mungkin informasi
lain yang bermanfaat yang bisa digunakan sebagai serangan Social
Engineering. Key Logger secara sederhana bisa dikategorikan sebagai Hack
Tool Pencuri Informasi. Sebagai contoh, Key Logger dapat mengungkapkan
isi dari semua e-mail yang ditulis oleh korban. Program Key Logger
biasanya terdapat di dalam rootkit dan trojan.
Key
Logger berfungsi untuk merekam (mencatat) semua aktifitas pengguna
komputer dengan mengambil input data melalui karakter keyboard yang
digunakan oleh user. Jadi jika user mengetikkan kata “SaYa” melalui keyboard maka secara otomatis Key Logger akan mencatatnya pada sebuah LOG file dengan data “SaYa”.
HACK TOOL = UTILITIES = KEY LOGGER?
Jika ada pertanyaan, apakah Key Logger itu termasuk tool jahat? atau
sejenis software utilities yang baik? Terus terang hanya Anda yang bisa
menjawabnya. Kelebihan manusia dengan makhluk lain adalah mampu
membedakan mana hal yang baik dan mana hal yang tidak baik.
A) Angel Style..?
Key Logger sering dipergunakan sebagai parental advisory
(kontrol orang tua) untuk mengawasi kegiatan anak-anak mereka saat
mempergunakan komputer. Selain itu juga sering dipergunakan oleh pemilik
internet cafe (warnet), network sharing, dan lainnya untuk mengawasi aktifitas user. Contoh : Pembatas konten dewasa (pr0n), kontrol orang tua terhadap topik pembicaraan anak di internet, etc.
B) Evil Style..?
Di sisi lain Key Logger jika disalahgunakan akan sangat merugikan
sekali, terutama bagi user yang menjadi target penyalahgunaan tool Key
Logger. Semua karakter yang diketikkan melalui keyboard akan tercatat
dengan baik pada LOG file. Entah itu password, Username, nomer PIN bank,
account FTP/Facebook/etc. Dari sini Anda tentu bisa membayangkan apa
yang akan terjadi jika Anda dan komputer Anda menjadi target kejahatan
ini.
TIPS TO PICK BEST STUFF
Key Logger bisa dikategorikan cukup baik dan mampu diandalkan jika memenuhi beberapa kriteria sebagai berikut :
A) Keberadaannya TIDAK TERDETEKSI oleh Antivirus, Anti-Malware dan lainnya,
Anda boleh saja bangga mempunyai Key Logger canggih dan keren, Anda
boleh saja menghabiskan uang tabungan Anda untuk membeli software Key
Logger yang banyak tersedia di internet. Fakta yang ada adalah 99% Key
Logger yang terdapat di internet sudah teridentifikasi oleh Antivirus.
Key Logger berharga mahal dan terkenal sekalipun jika sudah terdeteksi
oleh Antivirus apa bisa dipergunakan???
B) Memiliki ukuran (Size) yang relatif KECIL < 50 KB,
Size DOES Matter, ukuran itu penting. Key Logger dengan size besar
>50KB (seperti monster Godzilla Size DOESN’T Matter) akan menimbulkan
kecurigaan di komputer korban. Selain itu proses dan loadingnya sudah
pasti lebih lama. Hal ini tidaklah efektif.
C) PORTABLE dan KETERGANTUNGAN resource (dependency),
Key Logger harus bisa disalin dan dijalankan pada komputer berbeda
tanpa memerlukan installasi yang rumit dan minimum requirement yang
berbelit-belit. Sebagai contoh : Program yang ditulis dengan menggunakan
MS Visual Basic sebagian besar bergantung pada MSVBVM.DLL, jika pada komputer korban tidak terdapat MSVBVM.DLL maka Key Logger tidak akan dapat dijalankan!!!
Apa ya solusi yang tepat? Oya, bagaimana jika meminta korban untuk mendownload file MSVBVM.DLL
serta menjelaskan kepada korban bahwa di komputernya terdapat Key
Logger milik Anda yang tidak akan bisa dijalankan tanpa mendownload file
tersebut? Solusi GILA tersebut tentu akan membuat mata Anda lebam 3
hari 3 malam karena terkena tendangan maut dari korban yang tidak terima
komputernya disusupi oleh Key Logger Anda.
Bagaimana dengan solusi attachment? Solusi menyisipkan MSVBVM.DLL
di dalam Key Logger juga adalah sebuah solusi yang GILA karena akan
mengakibatkan size Key Logger bertambah besar! Solusi yang tepat adalah
kode optimisasi atau pergunakan bahasa pemrograman yang fleksibel, misal
Assembly.
SOME USEFUL APIS
Berikut ini Saya lampirkan Referensi Programmer untuk Microsoft Win32
mengenai beberapa fungsi API utama yang sering dipergunakan dalam
pemrograman Key Logger :
Hooks (Referensi user32.dll)
Hook adalah suatu point dalam mekanisme penanganan-pesan Microsoft®
Windows® di mana sebuah aplikasi dapat menginstal suatu subroutine untuk
memonitor lalu-lintas pesan di dalam sistem dan memproses jenis
tertentu dari pesan-pesan sebelum menjangkau prosedur jendela target.
Untuk mempelajari lebih lanjut, silahkan Anda membaca artikel Saya yang
berjudul
“Menembus proteksi Password dan Serial Number pada program dengan trik Win32 Hook”
RegisterHotKey (Referensi user32.dll)
Fungsi RegisterHotKey menggambarkan suatu kunci untuk menyisipkan thread.
BOOL RegisterHotKey(
HWND hWnd, // window to receive hot-key notification
int id, // identifier of hot key
UINT fsModifiers, // key-modifier flags
UINT vk // virtual-key code
);
GetMessage (Referensi user32.dll)
Fungsi GetMessage mengambil kembali sebuah pesan dari antrian thread
pemanggilan pesan dan menempatkannya di struktur yang ditetapkan. Fungsi
Ini dapat mengambil kembali kedua pesan yang berhubungan dengan jendela
yang ditetapkan dan thread mengeposkan pesan-pesan melalui fungsi
PostThreadMessage. Fungsi mengambil kembali pesan-pesan yang berada di
dalam cakupan yang ditetapkan dari nilai pesan. GetMessage tidak
mengambil kembali pesan untuk jendela yang dimiliki oleh thread atau
aplikasi lain.
BOOL GetMessage(
LPMSG lpMsg, // address of structure with message
HWND hWnd, // handle of window
UINT wMsgFilterMin, // first message
UINT wMsgFilterMax // last message
);
GetKeyboardState (Referensi user32.dll)
Fungsi GetKeyboardState menyalin status 256 tombol virtual ke buffer yang ditetapkan.
BOOL GetKeyboardState(
PBYTE lpKeyState // address of array to receive status data
);
GetKeyNameText (Referensi user32.dll)
Fungsi GetKeyNameText mengambil kembali sebuah string yang menampilkan nama dari sebuah key.
int GetKeyNameText(
LONG lParam, // second parameter of keyboard message
LPTSTR lpString, // address of buffer for key name
int nSize // maximum length of key-name string length
);
GetKeyState (Referensi user32.dll)
Fungsi GetKeyState mengambil kembali status dari kunci virtual yang
ditetapkan. Status tersebut menetapkan apakah kunci up, down, atau
toggle (on, off ¾ bertukar-tukar setiap kali kunci ditekan).
SHORT GetKeyState(
int nVirtKey // virtual-key code
);
GetAsyncKeyState (Referensi user32.dll)
Fungsi GetAsyncKeyState menentukan apakah suatu kunci up atau down pada
saat fungsi dipanggil, dan apakah kunci ditekan setelah pemanggilan
sebelumnya ke GetAsyncKeyState.
SHORT GetAsyncKeyState(
int vKey // virtual-key code
);
PROOF OF CONCEPT MRHPx Key Logger v1.8 (PUBLIC VERSION) mungkin adalah Key Logger terkecil di dunia, dengan size hanya sebesar 10.5 KB (10,752 bytes) tanpa kompresi!

Untuk mendapatkannya Anda bisa mendowloadnya di website Saya. Jalankan file
“MRHPx-Key-Logger.exe” dengan cara klik ganda dengan mouse. Key Logger akan menciptakan LOG file dengan nama
“MRHPx-KeyLogger-v1.8-PUBLICVERSION-Log.txt” pada lokasi direktori yang sama dengan tempat executable berada.
Screenshot 1. Applications Tab Task Manager
Saya
menggunakan bahasa pemrograman Assembly 32 bit (bukan Assembly 16 bit
yang sudah ketinggalan jaman) untuk coding Key Logger ini. Assembly 32
bit setara dengan C/C++, Delphi, VB, kelebihan lainnya adalah lebih
cepat. Ingat, Key Logger ini tidak terlihat pada Applications Tab Task
Manager, tidak memiliki GUI (User Interface) apalagi sampai warna-warni
seperti bendera partai pada saat pemilu. Konsep Saya adalah membuat Key
Logger dengan resource minimalis tapi powerful bak PANAH DEWA seperti rootkit SWISS ARMY KNIFE lainnya yang berjalan secara background..
Screenshot 2. LOG file
Selanjutnya
silahkan Anda mengetik apapun dengan menggunakan keyboard hardware
ataupun virtual keyboard. Aplikasi apapun yang Anda pergunakan untuk
mengetik data akan tersimpan dengan baik pada LOG file secara terpisah.
LOG file akan menyimpan data secara berkala setiap kali aplikasi baru
dijalankan. Untuk membaca LOG file Anda tidak perlu keluar dari aplikasi
karena Saya tidak men-setting batasan hak akses file user. Bagi Anda
yang ingin mengetahui lebih lanjut beberapa fitur yang lain silahkan
Anda membaca file “BACA_AKU.txt” yang disertakan. Untuk keluar dari aplikasi Key Logger silahkan tekan secara bersamaan tombol “CTRL+ALT+P” pada Keyboard Anda.
FINAL NOTES
Key Logger sangat berbahaya jika dipergunakan sebagai alat kejahatan.
Sepintas memang terlihat sepele, karena pada umumnya data yang tersimpan
di dalam LOG file cukup acak (CATATAN: beberapa Shareware Key Logger di
internet memiliki LOG file yang sangat amburadul karena dibuat secara
asal oleh coder BEGO dan MATRE). Namun apa yang terjadi jika data LOG
file tersebut dipergunakan sebagai Dictionary Bruteforce dengan bantuan tool seperti John the Ripper
dan lainnya??? Untuk memperoleh informasi username dan password korban,
data yang semula acak dan sepele akan menjadi dictionary efektif dan
bisa dipergunakan sebagai akses login hanya dalam hitungan menit.
Contoh
lain adalah jika Anda seorang guru atau dosen dan memiliki siswa yang
ternyata seorang hacker (Maksud Saya Cracker), bukan tidak mungkin siswa
Anda akan selalu mendapatkan nilai terbaik pada saat ujian karena siswa
Anda memasang Key Logger di laptop yang Anda pergunakan untuk menyusun
naskah ujian. Tanpa perlu belajar keras, cukup membaca naskah ujian yang
telah dicuri oleh Key Logger, siswa Anda akan terlihat menyamai
kepintaran Bapak Habibie dalam mengerjakan ujian keesokan harinya

Mengerikan
bukan? Namun jangan kuatir karena ada cara sederhana dan efektif untuk
mencegah komputer Anda disusupi oleh Key Logger yaitu dengan
mengaktifkan User Account Control (UAC), memeriksa Registry Autorun dan
Service Startup Windows serta memeriksa aplikasi yang berjalan secara
background dan terlihat mencurigakan di komputer Anda.