Cracking by Ollydbg



Bagi orang yang hobi mengkoleksi software seperti saya, adakalanya kita menginstal program demo atau shareware yang habis masa pakainya (EULA : End User License Agreement) setelah 30 hari atau 10 kali pemakaian tergantung dari vendor pembuat software. Lalu bagaimana caranya bila kita ingin memakai program tersebut lebih lama atau malah selamanya…?!!
Ada dua cara yaitu dengan membeli lisensi dari pembuat software atau meng-crack alias membobol sendiri proteksi software tersebut (bisa juga dengan mendownload crack, keygen, patch atau serial number hasil cracking dari para cracker dunia di situs-situs tertentu).
Bagi kamu yang ingin belajar menjadi cracker elit yang harus kamu pelajari adalah:

Belajar dan kuasai bahasa pemrograman Assembly, pahami processor arsitektur, memory management, dll.
Kamu harus familiar dengan Windows API (Application Programming Interface) dan system call pada Linux.
Download dan pelajarilah cara menggunakan debugger dan disassembler  serta hex editor seperti : IDA Pro, Ollydbg, Windbg, Immunity Debugger, Win32dasm, Winhex, Hiew, Dumpbin, dll.
Salah satu program cracking yang paling banyak dipakai dan disukai oleh para cracker adalah Ollydbg. Selain gratis, Ollydbg juga di lengkapi dengan banyak plugin yang banyak membantu dalam proses unpacking. Selain itu Ollydbg juga mempunyai GUI atau tampilan yang relatif simple dibandingkan dengan program cracking lainnya.
ollydbg1
Setahu saya buku-buku yang membahas tentang cracking software/reverse engineering masih sedikit tapi sudah cukup banyak tutorial yang bisa kamu dapatkan di internet. Berikut adalah beberapa buku bagus yang bisa membantu kamu menjadi software cracker/reverse engineering yang handal antara lain :
  1. The Art of Assembly Language by Randall Hyde
  2. Assembly Language Step by Step: Programming with DOS and Linux by Jeff Duntemann
  3. Disassembling Code: IDA Pro and SoftICE by Vlad Pirogov
  4. Reversing : Secrets of Reverse Engineering by Eldad Eliam
  5. Hacker Disassembling Uncovered by Kris Kaspersky
  6. Hacker Debugging Uncovered by Kris Kaspersky
  7. Fravia’s Pages of Reverse Engineering
*Sebagai tambahan materi downloadlah SDK (Software Develepment Kit) untuk belajar Windows API
Contoh routine sebuah program sederhana
1. Mengecek pemakaian program
aaaa : cmp eax,1e    –> apakah sudah dipakai selama 30 hari (1E = 30)
bbbb : jge dddd        –> lompat ke memori address dddd jika lebih dari atau sama dengan 30 hari
cccc : ax,02
dddd: call yyyy           –> ini untuk memanggil nag screen
eeee: ret                   –> hentikan eksekusi dan keluar
yyyy:                         –> This Program has Expired
zzzz:…
2. Mengecek serial number
100aa : Cmp eax,ebx –> mengecek apakah serial number yang dimasukkan sesuai
100bb : Jz 100xx       –> lompat ke alamat memori 10xxx jika s/n benar
100cc : Mov ax,yyyy
100dd: code…
100xx : code ..           –> successfully registered
100yy : code…
Kamu bisa melatih kemampuan cracking kamu dengan mendownload program kecil di website www.crackme.de
Dalam dunia nyata saat sekarang cracking software tidak semudah ini karena software-software sekarang menggunakan teknik anti debugging juga enkripsi.
Berikut ini saya berikan sebuah contoh mengcrack program sederhana dari seorang cracker yang bernama DeathSpawn sebagai gambaran buat kamu yang ingin tau bagaimana proses mengcrack sebuah program dari para cracker.
Nama program: Abex CrackMe5
Program yang dipakai: Ollydbg
Tingkat Kesulitan : Newbie atau Pemula
Tujuan : Mencari valid serial number
Pertama-tama jalankan program yang akan kita crack :
Crackme
Coba kita masukan sembarang serial number misalnya 12345 :
Crackme2
error
Oo…ternyata serial number yang kita masukan salah dan program menampilkan bad boy (istilah gaul para cracker).
Selanjutnya marilah kita mulai proses debugging dengan menjalankan program Ollydbg. Open file di path kamu menyimpan program yang akan dicrack (Abex CrackMe5) perhatikan gambar berikut :
Ollydbg
Scroll kebawah untuk mencari strings atau kalimat yang muncul saat error pop up atau lebih cepatnya dengan mengklik kanan pilih seach for -> All referenced strings :
String
Noname
terlihat dari text strings referenced by abex crackme5 ada dua kode ASCII yang tampak seperti serial number 4562-ABEX dan L2C-5781, coba kita masukkan kode tersebut kedalam program :
Noname2
error
Dan lagi-lagi kode tersebut ternyata bukanlah serial number yang valid.
Tahap selanjutnya kita harus men-trace kode-kode pada CPU section atau lebih cepatnya double klik pada ASCII “Yep, you entered correct serial” yang mengarahkan kita pada kode dan address atau alamat dimana program menyimpan string bila kita memasukkan serial number yang valid.
Cobalah kita lihat pada kode-kode diatasnya untuk mencari tahu kondisi apa yang membuat program memutuskan untuk menampilkan good boy :
Ollydbg
CPU Disasm
Address Hex dump Command Comments
004010FC |. 83F8 00 CMP EAX,0
004010FF |. 74 16 JE SHORT 00401117
00401101 |. 6A 00 PUSH 0 ; /Type = MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
00401103 |. 68 34244000 PUSH OFFSET abexcm5.00402434 ; |Caption = “Error!”
00401108 |. 68 3B244000 PUSH OFFSET abexcm5.0040243B ; |Text = “The serial you entered is not correct!”
0040110D |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hOwner => [ARG.EBP+8]
00401110 |. E8 56000000 CALL <JMP.&USER32.MessageBoxA> ; \USER32.MessageBoxA
00401115 |. EB 16 JMP SHORT 0040112D
00401117 |> 6A 00 PUSH 0 ; /Type = MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
00401119 |. 68 06244000 PUSH OFFSET abexcm5.00402406 ; |Caption = “Well Done!”
0040111E |. 68 11244000 PUSH OFFSET abexcm5.00402411 ; |Text = “Yep, you entered a correct serial!”
00401123 |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hOwner => [ARG.EBP+8]
00401126 |. E8 40000000 CALL <JMP.&USER32.MessageBoxA> ; \USER32.MessageBoxA
0040112B |. EB 00 JMP SHORT 0040112D
0040112D |$ 6A 00 PUSH 0 ; /Result = 0
0040112F |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hDialog => [ARG.EBP+8]
00401132 |. E8 22000000 CALL <JMP.&USER32.EndDialog> ; \USER32.EndDialog
00401137 |. C9 LEAVE
00401138 \. C2 1000 RETN 10
Lihat pada dua baris kode pertama :
CPU Disasm
Address Hex dump Command Comments
004010FC |. 83F8 00 CMP EAX,0
004010FF |. 74 16 JE SHORT 00401117
Dari kode diatas terlihat bahwa program akan menampilkan good boy bila EAX bernilai sama dengan serial number yang kita masukkan yang berarti register EAX memegang serial number yang valid. CMP artinya Compare dan JE artinya Jump if Equal.
Setelah mengetahui kondisi ini tempatkan breakpoint (lokasi dimana Ollydbg akan menghentikan jalannya program pada alamat tertentu) yaitu pada address 004010FC dengan menekan tombol F2 atau double klik. Kemudian jalankan program dengan menekan tombol F9, pada ASCII section sebelah kiri bawah terlihat bahwa serial number yang valid muncul coba kita masukkan serial number ini apakah berhasil atau tidak :
Ascii
sukses
Welldone
Yap…ternyata serial number yang kita masukkan benar, cukup mudah kalau kamu perhatikan baik-baik.
Cara tersebut merupakan cara yg sangat sederhana yg disebut serial fishing (istilah cracker untuk mencari serial number).
Pada saat ini sistem proteksi software sudah sangat meningkat karena adanya teknik Code Obfuscation (cara untuk mempersulit membaca kode program) seperti packing atau compress dan/atau enkripsi seperti yang banyak dilakukan oleh program jahat seperti virus, trojan, worm, rootkit, dsb untuk mempersulit vendor Antivirus untuk melakukan Static Analysis (analisis kode program).
Cracker dapat mengetahui apakah sebuah program menggunakan packer atau tidak dengan cara menggunakan program PE Scanner seperti PEid, StudPE, AT4RE FastScanner, RDG Packer Detector, ProtectionID, dll. Program yang saya contohkan diatas tidak menggunakan packer atau crypter karena memang saya tujukan untuk para pemula dan karena saya sendiri juga masih pemula didunia cracking. Tutorial mengenai cara meng-crack program yang menggunakan packer akan saya berikan menyusul (InsyaAllah).
microsoft
Website yang menyediakan crack, s/n, dan keygen gratis :
  1. www.serials.ws
  2. www.crackserialkeygen.com
  3. http://astatalk.com
Daftar Cracker Group Dunia
Mau tahu group-group cracker elit didunia, berikut ini saya berikan daftar tentang beberapa cracker group dan individu yang paling terkenal dijagad per-cracking-an dunia (beberapa diantaranya mungkin sudah tidak aktif lagi).
Group-group cracker ini biasanya masih ada kaitannya dengan group lain karena beberapa anggota group merupakan mantan anggota dari group lain yang kemudian membentuk group sendiri. Mereka berkomunikasi dengan anggota lain diseluruh dunia melalui IRC channel. Beberapa diantara group ini sudah berdiri bertahun-tahun dan dari yang saya baca di nfo setiap releasenya, mereka mengklaim sudah berhasil mengcrack ribuan software. Kalo mau jadi cracker sejati, belajarlah dari para Master Cracker berikut:
1. +ORC (Old Red Cracker) —> Bapak cracker dunia
2. +Fravia
3. ARTeam
4. AHTeam
5. SnD
6. Team ICU
7. AoRE
8. AT4RE
9. RETeam
10. UnpackCn
11. CracksLatinoS
12. Rogue
13. FFF
14. ARN
15. DIGINSAN
16. CORE
17. PARADOX
18. ZWT
19. SSG
20. AiR
21. X-FORCE
22. LineZero
23. MKDEV
24. DVT
25. ROR
26. ViTALiTY
27. EMBRACE
28. pHAZE
29. REA
30. NoPE
31. REVENGE
32. TSRh
33. MYSTiC
34. Under SEH
35. THETA
36. MESMERiZE
37. BLiZZARD
38. BinPDA
39. IREC
40. DEViANCE
41. RiSE
42. RELOADED
43. SKiDROW
44. Phrozen Crew
45. MiRaGe
46. DEViSO
47. FiGHTCLUB
48. F4CG
49. FASiSO
50. AGaiN
51. AVENGED
52. BReWErS
53. CRBS
54. CzW
55. DELiGHT
56. FASDOX
57. GOW
58. iMMERSiON
59. ISOGER
60. P2P
61. InFiNiTy
62. LUCiFER
63. DOA
64. Cin1 Team (Vietnam)
65. BRD
67. QUASAR
68. EQUiNOX
69. JGTiSO
70. UNION
71. SONiTUS
72. DYNAMiCS
73. MAGNETRiXX
74. MAGNiTUDE
75. LAXiTY
76. iNKiSO
77. MAZE
78. RESTORE
79. BLZiSO
80. ENGiNE
81. SYNTHiC4TE
82. Black Storm (banyak cracker Indonesia di group ini)
83. dll….
Local Cracker Group :
1. IRiS (Indonesia Reversing in Starlight), kalo tidak keliru nama salah satu anggotanya adalah Anvie, mungkin Anvie yang merupakan programer Ansav Antivirus…?!!
2. IRC (Indonesia Reversing Crew), didirikan oleh orakanggo dan NeMeSiS ByTe a.k.a MRHPX
3. KJT (Kocok Jaya Team)
 (Saya hanya tahu 3 cracker group local ini tapi tidak tahu existensi keduanya sampai saat ini…?!!!)
Kamu bisa saja bergabung dengan salah satu dari mereka karena biasanya mereka juga merekrut cracker berbakat (cracker, keygenner, supplier) tanpa memandang kebangsaan anggotanya dan menjadi salah satu cracker elit dunia. Syaratnya jelas seperti yang ada pada file nfo dari setiap software release mereka yaitu kamu harus menguasai pemrograman khususnya Assembly, C/C++, Delphi, Phyton, Ruby, dll (Visual Basic dianggap kurang cocok didunia cracking). Selain itu kamu juga harus bisa meng-unpack software packer dan protector seperti berikut ini :
1. Armadillo
2. Aspack
3. Asprotect
4. UPX
5. Molebox
6. Themida
7. Mew
8. Mpress
9. Fsg
10. Upack
11. YodasCrypter
12. Safecast
13. SecuRom
14. ExeCryptor
15. Expressor
16. Kkrunchy
17. PeSpin
18. SVK Protector
19. tElock
20. STL Packer
21. VMProtect
22. WinUpack
23. WSNPOEM
24. Enigma
25. LaserLock
26. Obsidium
27. PECompact
28. Petite
29. FlexLM
30. Dongle (Hardware based Protection)
31. dll…
Software packer dan protector diatas selain banyak dipakai oleh software developer juga banyak dipakai oleh Vyxers (pembuat virus) diantaranya untuk memperkecil ukuran, menghindari deteksi antivirus dan mempersulit proses static analysis (analisis kode) dari Avers (pembuat antivirus).
Proteksi Software ada bermacam-macam begitu juga teknik untuk mem-break proteksinya. Saat kamu mendownload software di file hosting (Rapidshare, Mediafire, 4shared, Ziddu, Indowebster, Torrent, dll) biasanya sudah termasuk crack yang ada didalam foldernya.
Berikut saya rangkumkan cara-cara untuk menggunakan crack yang biasanya terdapat pada readme file:
1. Serial number (SN)
Untuk software dengan proteksi semacam ini, kamu tinggal mengkopi pastekan serial (dan biasananya beserta nama) kedalam kolom  yang muncul.
2. Crack
Software dengan proteksi semacam ini, kamu harus mengkopi pastekan (copas) crack kedalam folder instalasi sofware, biasanya di C:\Program Files\”nama program”\ dan meng-overwrite file/aplikasi (exe atau dll) yg ada difolder instalasi tersebut. Pastikan file/aplikasi yang mau dioverwrite tidak sedang dijalankan.
3. Patch
Software dengan proteksi semacam ini, kamu kopikan patch kedalam folder instalasi biasanya di C:\Program Files\”nama program”\ dan meng-klik pacth filenya disana. Pastikan program tidak sedang dijalankan sebelum kamu meng-klik patch file tersebut.
4. Reg
Software dengan proteksi ini, kamu hanya tinggal mendobel klik reg file yang ada.
Untuk software yang menggunakan proteksi hardware (dongle) biasanya program di crack menjadi portable walaupun tidak semua program portable sebenarnya berproteksi dongle.
Pada umumnya sebelum menggunakan cara-cara diatas pastikan kamu tidak sedang koneksi ke internet kecuali untuk software tertentu. Beberapa program juga membutuhkan reboot atau restart sebelum kamu bisa menggunakannya secara full version, jadi pastikan kamu membaca readme file sebelum menggunakan software yang sudah dicrack tersebut.
Buat yang mau mendownload Packer detector/PE Scanner
Klik disini

(
omawangi.wordpress.com)