Self Keygenning

Tutorial : Self Keygenning
Date : 191007
Author : orakanggo https://orakanggo.wordpress.com
Tools : Olly+Bookmark plugin

Download file pdf-nya di http://indoupload.net/files/10920/SelfKeygen_orakanggo.pdf

Hi prends…
Pakabar, Taqobbalallohu minna waminkum Minal Aidzin Wal Faidzin Mohon ma’af lahir batin dan selamat hari raya idul fitri 1428H.

Iseng2 aja di kampung lg gada kerjaan jadi saya berusaha nyempetin bikin tutorial dikit yang mudah2an berguna dan lagi2 buat newbie hehe…

Kalo kalian udah paham step by step tutorial saya sebelumnya yaitu Membuat Keygen buat Beginner, untuk yang ini pasti gak kesulitan ngikutin tutorial yg ini.

Tutorial kali ini tetep menggunakan diablo Keygenme 01 dan kita akan membuat diablo keygenme menjadi sebuah keygen dari aplikasi keygenme itu sendiri atau biasa dinamakan self keygen.

Self keygen relatif lebih mudah daripada membuat keygen karena kita tidak harus mengerti algoritma secara keseluruhan tetapi hanya memanfaatkan algoritma yang sudah ada dan tinggal menampilkan hasilnya.
Ok kita mulai aja yah…

1 Oh iya… kita harus tahu rule sebelumnya yaitu :

a. Nama yang dimasukkan minimal 5 karakter dan maksimal 32 karakter walaupun yang dikalkulasi hanya 10 karakter pertama
b. Serial yang dimasukkan harus 10 karakter

2 Plugin yang berguna adalah Bookmark, download di http://indoupload.net/files/10920/BOOKMARK.DLL dan taro di folder plugins dan start olly. Just review, step2 awal masih sama dengan tutorial Membuat Keygen untuk Beginner dan sampai pada step 15 berhenti dulu yak.

Photo Sharing and Video Hosting at Photobucket

3 Kita bisa mengabaikan kalkulasi nama dan langsung menuju VA 40130D yang tidak laen adalah kalkulasi serial. Kalkulasi serial dibandingkan per karakter, jika karakter tidak sesuai maka akan langsung jump ke badboy.

0040130D 8D05 B4314000 LEA EAX,DWORD PTR DS:[4031B4]
00401313 |> 8A1C01 MOV BL,BYTE PTR DS:[ECX+EAX]
00401316 |. 8A91 3C314000 MOV DL,BYTE PTR DS:[ECX+40313C]
0040131C |. 80FB 00 CMP BL,0
0040131F |. 0F84 81000000 JE d2k2_cra.004013A6
00401325 |. 80C2 05 ADD DL,5
00401328 |. 80FA 5A CMP DL,5A
0040132B |. 7F 14 JG SHORT d2k2_cra.00401341
0040132D |> 80F2 0C XOR DL,0C
00401330 |. 80FA 41 CMP DL,41
00401333 |. 7C 11 JL SHORT d2k2_cra.00401346
00401335 |. 80FA 5A CMP DL,5A
00401338 |. 7F 12 JG SHORT d2k2_cra.0040134C
0040133A |> 41 INC ECX
0040133B 38DA CMP DL,BL
0040133D ^ 74 D4 JE SHORT d2k2_cra.00401313
0040133F EB 11 JMP SHORT d2k2_cra.00401352
00401341 80EA 0D SUB DL,0D
00401344 |.^ EB E7 JMP SHORT d2k2_cra.0040132D
00401346 |> B2 4B MOV DL,4B
00401348 |. 02D1 ADD DL,CL
0040134A |.^ EB EE JMP SHORT d2k2_cra.0040133A
0040134C |> B2 4B MOV DL,4B
0040134E |. 2AD1 SUB DL,CL
00401350 |.^ EB E8 JMP SHORT d2k2_cra.0040133A

4. Dari algo di atas, decission untuk menuju badboy atau melanjutkan kalkulasi serial ada pada VA 40133B.

0040133B 38DA CMP DL,BL
0040133D ^ 74 D4 JE SHORT d2k2_cra.00401313
0040133F EB 11 JMP SHORT d2k2_cra.00401352

5 Register DL menyimpan kalkulasi karakter yang benar, sedangkan register BL menyimpan kalkulasi karakter yang kita masukkan. Jika perbandingan antara register DL dan DL adalah sama, maka lanjutkan mengkalkulasi karakter selanjutnya dengan menuju ke VA 401313. Tetapi jika tidak sama, maka akan jump ke badboy.

6 Mulai dari VA 40133B, kita akan menginject beberapa code dengan melakukan dump register DL ke suatu “Code Cave”.
Dari tutorial Drew Benton, pengertian Code Cave adalah a redirection of program execution to another location and then returning back to the area where program execution had previously left
artiin sendiri yak, saya cuman Ctrl-V, pan saya gk jago basa enggres.

Code Cave ditandai dengan DB 00 jadi nanti kita akan mencari alamat yang tidak dipakai untuk kita inject beberapa code.

7 Balik lagi, set breakpoint(F2) pada VA 40133B trus klik kanan, Bookmark > Insert Bookmark 0

Photo Sharing and Video Hosting at Photobucket

8 Scroll ke bawah, cari sampai dengan ketemu DB 00 dan kita tentukan VA 401444(bisa dipilih alamat lain) untuk kita inject, jadi klik kanan, Bookmark > Insert Bookmark 1

Photo Sharing and Video Hosting at Photobucket

9 Balik lagi ke bookmark 0 dengan klik Alt+0, dobel klik di CMP DL, BL untuk assemble code, masukkan :
JMP 401444

10 Command di atas akan mengover write beberapa command di bawahnya, karena jmp memerlukan 5 byte sedangkan CMP DL, BL hanya “memakan” 2 byte, but no problem.. .hajar aja blehhhh. Klik Alt+1 untuk menuju bookmark 1 yang udah kita bikin tadi atau di VA 401444
Photo Sharing and Video Hosting at Photobucket
sebelum
Photo Sharing and Video Hosting at Photobucket
Sesudah

11 Dobel klik lagi dan masukkan command:

MOV BYTE PTR DS:[ECX+403250],DL
JMP 401313

Artinya, kita akan dump nilai register DL ke dalam alamat pointer 403250. Dipilih alamat 403250 karena disitu merupakan alamat kosong yang kita bisa pake buat dump data, ente juga bisa pake alamat yang laen koq…
Photo Sharing and Video Hosting at Photobucket

Caranya, klik “M” di toolbar dan disitu ada section .data jadi kita bisa pake range mulai 403000.
Photo Sharing and Video Hosting at Photobucket

Dan ditambahkan dengan nilai ECX karena setiap ECX bertambah, maka nilai register DL akan ditulis di samping nilai DL yang ditulis sebelumnya sehingga tidak meng-overwrite nilai DL sebelumnya.

Mengapa menggunakan register ECX? karena register tersebut digunakan sebagai register increment kalkulasi serial di atas.

Selanjutnya akan kita paksa alur program untuk balik lagi ke ke alur yang benar dengan menulis JMP 401313, dan akan berakhir sampai 10 x.

12 Gak ribet kan? Sekarang jalankan program dengan klik F9, masukkan nama misalnya orakanggo (harus lebih dari 5 karakter dan yg paling penting nih…biyar inget ama gw terus wkwkwkwk….) trus masukkan serial misalnya 1234567890(harus 10 karakter) trus klik Try dan otomatis balik lagi ke Olly dan berhenti pada VA 40133B sebelum menuju injection code yang udah kita bikin tadi.
Photo Sharing and Video Hosting at Photobucket

13 Klik F8 untuk trace ke code berikutnya maka kita akan menuju VA 401444, untuk membuktikan bahwa register DL dapat kita dump, klik kanan pada VA tadi dan pilih Follow in Dump > Address Constant, klik F8 lagi, maka karakter “K” akan muncul pada dump window di VA 403251, lho koq bukan di VA 403250? karena saat itu, ECX bernilai 1. Ya to?Ya to?
Photo Sharing and Video Hosting at Photobucket

14 Klik F8 sekali lagi maka akan balik ke 401313 untuk melanjutkan kalkulasi serial selanjutnya.

15 Next, Klik F9 sebanyak 9 kali, sampai dump window akan menampilkan karakter KBIEBFECX, klik F8 3 kali untuk menampilkan sekali lagi hasil perhitungan serial sehingga komplet 10 karakter menjadi KBIEBFECXA.
Photo Sharing and Video Hosting at Photobucket

16 Yang terakhir adalah bagaimana cara menampilkan hasilnya?Caranya adalah bisa melalui message box atau mengganti isi text input serial.

17 Kita akan coba cara yang kedua dengan menginject sekali lagi dengan mengganti API MessageBoxA di VA 4013A6 menjadi SetDlgItemTextA.
Photo Sharing and Video Hosting at Photobucket

Sebenernya bisa aja sih pake API MessageBoxA yang hanya mengganti PUSH 403251 di VA 4013AD tapi kan biyar lebih mirip keygen, kita coba yang lebih advanced lagi.

Ada yang tau kenapa kita pake API MessageBoxA yang goodboy? bukan yang badboy? harus jawab yaaa….

18 Dari Win32 API Reference Guide, kita dapatkan referensi:

BOOL SetDlgItemText(

HWND hDlg, // handle of dialog box
int nIDDlgItem, // identifier of control
LPCTSTR lpString // text to set
);

yang perlu diingat, dalam assembler, command ditulis terbalik sehingga parameter yang pertama kita masukin dari belakang dulu, kek hombreng dong? rrrrrrrrrrrrggghhhh.
Atau cara yang lebih mudah, kita bisa meng-copy parameter API yang sudah ada. Caranya adalah Klik kanan pada CPU window, Search for > All intermodular calls dan pilih SetDlgItemTextA yang bawah (karena ada 2) palagi yg bawah kan lebih wenak….

19 Scroll up dikit, pada VA 40119B drag selection sampe VA 4011A5, klik kanan, Copy > To clipboard dan paste pada notepad maka akan kita dapatkan:

0040119B |. 68 0B304000 PUSH d2k2_cra.0040300B ; /Text = “Enter Serial”
004011A0 |. 6A 04 PUSH 4 ; |ControlID = 4
004011A2 |. FF75 08 PUSH [ARG.1] ; |hWnd
004011A5 |. E8 6E020000 CALL <JMP.&USER32.SetDlgItemTextA> ; \SetDlgItemTextA

20 Balik lagi, klik Alt+0 dan ke goto VA 4013A6.

21 Edit mulai VA 4013A6 satu per satu sama persis dengan code di atas tapi inget, khusus di VA 40119B adalah PUSH 403251 bukan PUSH 40300B

PUSH 403251
PUSH 4
PUSH [ARG.1]
CALL 401418

tau kan maxutnya? sehingga hasilnya seperti di bawah:

004013A6 68 51324000 PUSH d2k2_cra.00403251 ; ASCII “KBIEBFECXA”
004013AB 6A 04 PUSH 4
004013AD FF75 08 PUSH DWORD PTR SS:[EBP+8]
004013B0 E8 63000000 CALL <JMP.&USER32.SetDlgItemTextA>

Photo Sharing and Video Hosting at Photobucket

22 That’s All, maka semua isi register DL yang kita dump sebelumnya akan ditampilkan pada input box serial.

23 Save hasil patch dengan klik kanan, Copy to executable>All modifications pilih Copy All. Dan klik kanan, pilih save file.

24 Close Olly, Jalankan file hasil patch tadi, masukkan name : orakanggo dan serial harus diinputkan dulu 10 karakter sembarang dan otomatis file diablo keygemne tersebut menjadi keygen tanpa perlu pake VB lagi hehe…
Photo Sharing and Video Hosting at Photobucket

25 Untuk test, jalankan file asli dan paste hasil serial ke file yang asli.

Thanks.
Comments are welcome.

25 thoughts on “Self Keygenning

  1. Ping balik: STM Telpun : Angkatan 5 » Self Keygenning

  2. Ping balik: Copas Tidak Pada Tempatnya… « orakanggo ~ another side of me

  3. alv

    Tlg ajarin ngecrack software yg dibuat dengan visual basic donk, soale ga ada string ataupun text yg bs di buka pake debugger. Please donk…..

    Balas
  4. Ping balik: Ikatan Alumni SMK Telekomunikasi Malang » Blog Archive » Copas Tidak Pada Tempatnya…

  5. Li@n

    hi.. salam kenal ya
    saya dari gayo mau nanya password untuk buka program php. apache dong mas…

    master nya apa ya Username? Password?
    trims ya….. c u..

    Balas
  6. lavizta

    Mangtabs..tenan. Jawane ngendi iki mas?
    Sayangnya..aku bloon soal matematik..algoritma dkk. addduhh..pusing.
    tapi sualut salut..
    bdw mas..belajar ginian otodidak bisa nggak ya? mesti ilmu matematik nya jeblok banget je..! :d

    Balas
  7. Shandy

    bos, sya newbie dan bejiner tentang programer, kalo membuat keygen antara yang memasukan nama dan serial dengan yang menggunakan dongle apa ada bedanya ? tolong pencerahannya !!

    Balas

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