Cracking Software: MessageBox Sederhana
HackINTRO
Artikel ini ditujukan untuk semua level pembaca, tidak ada perbedaan, Leet, Newbie, melintasi semua batas, NO-SARA, We’re the one for equality.. Punk Rock, oi-oi!
Sebelumnya Saya ingin menyampaikan salam
hormat dan persahabatan kepada seluruh rekan-rekan Hacker yang pernah
mengenal Saya di Indonesia, terutama rekan-rekan veteran h4xx0r yang
mengagumkan..
Artikel ini ditujukan untuk semua level pembaca, tidak ada perbedaan, Leet, Newbie, melintasi semua batas, NO-SARA, We’re the one for equality.. Punk Rock, oi-oi!
Pernahkah bertemu dengan software trial
alias shareware atau mempergunakan shareware? Shareware adalah program
trial (tidak gratis) yang memiliki keterbatasan dan mengharuskan user
untuk membeli atau membayar software tersebut sebelum bisa dipergunakan
secara penuh atau tanpa batasan. Artikel ini akan mencoba membahas hal
paling dasar dari skema proteksi software berbayar (shareware). Salah
satu skema shareware yang cukup terkenal adalah Nag atau kotak dialog
yang menampilkan pesan tentang status software, apakah sudah dibeli
(Registered) atau masih trial (Unregistered). Sebenarnya artikel ini
merupakan modifikasi dari salah satu materi seminar Saya di pertengahan
tahun 2009 untuk instansi pendidikan jurusan Teknik Informatika, dimana
saat itu Saya diminta memperagakan demo cracking sederhana yang sering
dijumpai pada skema shareware.
Artikel ini TIDAK bertujuan untuk
mengajarkan cara mencuri ataupun membajak software berbayar, namun lebih
mengutamakan kepada pemahaman tentang kerawanan sebuah sistem. Tidak
satupun target yang dipergunakan sebagai kelinci percobaan pada artikel
ini yang berstatus shareware milik pihak lain. Target yang disediakan
adalah software buatan Saya pribadi, jadi tidak ada pihak lain yang
dirugikan disini kecuali Saya (Waktu istirahat dirumah seusai kerja
terpangkas karena menulis artikel ini dan uang pribadi Saya terpangkas
karena dipergunakan untuk membayar koneksi broadband internet melakukan
download compiler Assembler dan posting artikel..)
Kepada seluruh “Prankster”
alias “Not Action Talk Only” yang selalu
negatif dalam menilai aktifitas Hacker, sebaiknya baca terlebih dahulu
sebelum menilai.. kenapa malah kalian yang ribut? Padahal yang terpakai
waktu, tenaga dan uang pribadi Saya, bukan milik kalian! Sirik tanda tak
mampu..
Tool On Demand :
- Ollydbg, bisa Anda dapatkan di www.ollydbg.de.
- File target “Target.exe” telah disertakan bersama artikel ini atau kunjungi website Saya di www.mrhpx.co.nr (Saya membuatnya secara pribadi untuk menghindari pelanggaran UU Hak cipta dan DMCA yang menyebalkan!)
- Pengetahuan tentang Assembly (Tidak tahu sama sekali juga tidak
masalah
)
- Red Palmall.. (Untuk motivasi dan Inspirasi.. Serta membantu
meningkatkan pendapatan pajak pemerintah Republik Indonesia
)
- Padi – Tempat Terakhir.mp3.. (Lagu yang bagus, untuk mengupdate
database musik dan jiwa, ingat jangan membeli bajakan!
)
Target Description
Karakter target seperti yang telah disebutkan diatas adalah menampilkan Nagscreen atau MessageBox di awal software dijalankan. Untuk menghilangkan tampilan Nagscreen MessageBox, user harus melakukan pembelian.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Karakter target seperti yang telah disebutkan diatas adalah menampilkan Nagscreen atau MessageBox di awal software dijalankan. Untuk menghilangkan tampilan Nagscreen MessageBox, user harus melakukan pembelian.
Screenshot NagScreen
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Tugas yang harus dikerjakan disini
adalah menonaktifkan MessageBox atau kotak dialog pesan. Sehingga
software tidak akan menampilkan MessageBox lagi diawal software
dijalankan untuk selamanya.
Tidak ada hal yang lebih menyenangkan di
bidang keamanan komputer selain melakukan analisa Reverse Engineering
file Binary. Rekan-rekan yang penasaran terhadap isu Deface Website,
Rootkit, Software Cracking, Penetrasi Sistem, DDoS, Buffer Overflow dan
sejenisnya wajib mempelajari Reverse Engineering. Dari bidang inilah
semua isu security berasal, baik mengenai Exploit, Vulnerable atau Bugs
Sistem dan lain sebagainya. Sebelum membaca lebih lanjut Saya sangat
merekomendasikan kepada Anda untuk membaca artikel Saya yang berjudul “Tutorial Injeksi Executable – Bagian 1 : MessageBox”
dan “Tutorial Injeksi Executable-Bagian 2-Splash Screen”
kedua artikel tersebut bisa membantu Anda dalam memahami dasar Reverse
Engineering jika Anda menemui kesulitan saat membaca artikel ini.
The Beginning
Jalankan Ollydbg kemudian load “Target.exe”.. Tampilan akan terlihat seperti pada Screenshot dibawah ini. Khusus bagi Anda yang termasuk dalam tingkatan bukan newbie, disini Anda tentu sudah bisa membaca Entry Point (EP) dan menentukan langkah untuk mematahkan proteksi.
Jalankan Ollydbg kemudian load “Target.exe”.. Tampilan akan terlihat seperti pada Screenshot dibawah ini. Khusus bagi Anda yang termasuk dalam tingkatan bukan newbie, disini Anda tentu sudah bisa membaca Entry Point (EP) dan menentukan langkah untuk mematahkan proteksi.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Screenshot Load Target
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Screenshot Load Target
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
CATATAN : Address yang
terdapat pada komputer Anda mungkin berbeda dengan yang terdapat pada
artikel ini. Selalu ikuti Address pada komputer Anda.
Pada layar utama, Klik
kanan->Search for->All referenced text strings.
Setelah itu Anda akan berada pada jendela baru yang menampilkan
bermacam-macam string, coba cari dan arahkan mouse Anda pada string yang
bertuliskan “Software SHAREWARE KEREN #1 di Dunia dan Alam
Bawah Sadar”, lalu klik ganda atau tekan enter.
Anda akan kembali lagi menuju jendela
utama, coba Anda arahkan mouse satu baris ke atas tepatnya alamat 1314156F
di instruksi “6A 24” atau “PUSH
24”. Anda akan menjumpai tanda panah berwarna merah “Conditional
Jump” atau “Lompatan Dengan Memperhatikan
Kondisi” yang berasal dari alamat 13141533 “EB
3A”.
MessageBox (Win32 Programmer’s
Reference)
Fungsi MessageBox menciptakan, menampilkan dan mengoperasikan sebuah dialog pesan. Dialog pesan berisi suatu gambaran-aplikasi pesan dan judul, ditambah berbagai kombinasi dari tombol tekan dan ikon yang dikenal.
Fungsi MessageBox menciptakan, menampilkan dan mengoperasikan sebuah dialog pesan. Dialog pesan berisi suatu gambaran-aplikasi pesan dan judul, ditambah berbagai kombinasi dari tombol tekan dan ikon yang dikenal.
Info
Windows NT : Yes
Win95 : Yes
Win32s : Yes
Import Library : user32.lib
Header File : winuser.h
Unicode : WinNT; Win95
Platform Notes : None
Windows NT : Yes
Win95 : Yes
Win32s : Yes
Import Library : user32.lib
Header File : winuser.h
Unicode : WinNT; Win95
Platform Notes : None
Syntax
int MessageBox(
HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style of message box
);
int MessageBox(
HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style of message box
);
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Screenshot Assembly Code
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Screenshot Assembly Code
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Logical, Analyze, ATTACK..
CRACKadabra!™
Saat software dijalankan akan langsung menuju ke alamat 13141533 “EB 3A”. Yang berfungsi untuk menjalankan instruksi di alamat 1314156F “PUSH 24” yang berisi Nagscreen atau MessageBox. Di alamat 13141586 “CMP EAX,7” software melakukan pemeriksaan, yaitu :
Saat software dijalankan akan langsung menuju ke alamat 13141533 “EB 3A”. Yang berfungsi untuk menjalankan instruksi di alamat 1314156F “PUSH 24” yang berisi Nagscreen atau MessageBox. Di alamat 13141586 “CMP EAX,7” software melakukan pemeriksaan, yaitu :
- Jika user menekan “No” alamat 13141589 “JE SHORT TARGET.1314158D” maka kode akan mendarat di alamat 1314158D “PUSH 0” yang akan menyebabkan software exit.
- Sedangkan jika user menekan “Yes” alamat 1314158B “JMP SHORT TARGET.13141594” maka kode akan mendarat di alamat 13141594 “PUSH 0” yang akan menyebabkan software berjalan secara normal.
Dari data analisa diatas, maka bisa
disimpulkan beberapa metode yang bisa dipakai untuk menonaktifkan
Nagscreen atau MessageBox. Saya bukan tipe Hacker yang pelit ataupun
tipe Hacker bego dan matre yang suka menjual teknik Hacker yang cepat
basi, seperti kebanyakan buku Hacker mahal yang sering Anda temukan di
toko buku online dan offline di sekitar Anda. Saya tidak ingin hanya
memberikan satu metode saja, Saya lebih menyukai memberi Anda beberapa
metode dalam pemecahan permasalahan. Orang yang hanya memiliki satu
metode strategi dalam menghadapi lawan adalah orang yang cukup konyol.
Beberapa metode yang bisa dipergunakan, yaitu :
- Metode 1 – JUMP Merubah lompatan, cara ini adalah cara paling efektif dan efisien. Yaitu merubah arah tujuan dari lompatan instruksi, teknik ini hanya memerlukan perubahan nilai 1 byte saja!
- Metode 2 – NOP Meniadakan proses instruksi, cara ini adalah cara efektif namun kurang efisien mengingat banyak terbentuknya Code Cave. Yaitu dengan meniadakan beberapa instruksi dengan cara merubahnya sebagai instruksi yang tidak dijalankan.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Screenshot Method 1 – JUMP
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Screenshot Method 1 – JUMP
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Untuk menerapkan teknik ini cukup mudah,
pada alamat 13141533 “JMP SHORT TARGET.1314156F”,
rubahlah nilai “EB 3A” menjadi “EB
5F”. Hal ini akan membuat software tidak menghiraukan
kode Nagscreen atau MessageBox dan langsung menuju alamat 13141594
“PUSH 0” untuk menjalankan program secara normal.. TANPA
NAGSCREEN!
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Screenshot Method 2 – NOP
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Screenshot Method 2 – NOP
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Untuk menerapkan teknik ini, cukup blok
dengan cursor dari alamat 1314156F “PUSH 24”
sampai dengan 13141581 “CALL
<JMP.&USER32.MESSAGEBOXA>” (Referensi lihat Screenshot
Assembly Code). Kemudian Klik
kanan->Binary->Fill with NOPs. Hal ini akan membuat
software tidak lagi mempunyai Nagscreen atau MessageBox, meskipun
instruksi pemeriksaan masih ada namun tidak mempengaruhi kinerja
software. Dengan begitu software akan menuju alamat 13141594
“PUSH 0” untuk menjalankan program secara normal.. TANPA
NAGSCREEN!
Final Notes
Tugas sudah berhasil dikerjakan dengan baik, software “Target.exe” tidak lagi menampilkan Nagscreen atau MessageBox. Mudah bukan? Tidak sampai 1 Menit, Nagscreen berhasil dilumpuhkan. Software “Target.exe” hanyalah salah satu contoh nyata dari bugs shareware karena kelalaian Programmer (Mungkin saja programmernya dulu kuliah di jurusan ilmu manajemen dan kesehatan hewan seperti Saya, jadi sedikit lupa tentang cara pemrograman yang tepat
). Kenapa bisa begitu? Karena teknik diatas
memakai “Text String” sebagai acuan.
Tugas sudah berhasil dikerjakan dengan baik, software “Target.exe” tidak lagi menampilkan Nagscreen atau MessageBox. Mudah bukan? Tidak sampai 1 Menit, Nagscreen berhasil dilumpuhkan. Software “Target.exe” hanyalah salah satu contoh nyata dari bugs shareware karena kelalaian Programmer (Mungkin saja programmernya dulu kuliah di jurusan ilmu manajemen dan kesehatan hewan seperti Saya, jadi sedikit lupa tentang cara pemrograman yang tepat
Jika saja software tersebut menggunakan
teknologi seperti obfuscation atau menyembunyikan string tentunya tidak
akan semudah ini berhasil dilumpuhkan. Percaya atau tidak, hampir
sekitar 70% software shareware di seluruh dunia menggunakan Nagscreen
atau MessageBox dan menampilkan Text String! Terutama software shareware
produksi dalam negeri! Saya yakin Anda bisa membayangkan betapa
rumitnya hidup sebagai programmer dengan resiko software mereka dibajak.
Saran untuk Anda, jangan pernah mempergunakan software bajakan. Jika
Anda belum memiliki uang, menabunglah, belilah lisensi resmi jika sudah
memiliki uang atau pergunakan Open Source. Programmer juga butuh makan,
mereka menjual software agar bisa mendapatkan penghasilan. Hacker
terlahir untuk membantu sesama, bukan merugikan sesama. Semoga artikel
Saya bermanfaat bagi Anda dan dapat membantu Anda mengamankan diri dari
kejahatan cyber. I am a Hacker.. I am a Cracker.. But I am still a
Farmer!

Posting Komentar