Solusi Serialme elf_cm1.exe

Author : orakanggo
Tutorial Number : 2
Level : Very Easy
Date : 171106
Tools : Olly & WinAPI

1. Download file serialme di

http://rapidshare.com/files/3297134/elf_cm1.exe.html

mirror

http://akas.kaylazhafir.net/elf_cm1.exe

2. Jalankan file elf_cm1.exe secara normal dan klik “check!”

3. Catat error message yang muncul = “no, not really.”

4. Exit elf_cm1.exe, buka Olly dan load file elf_cm1.exe.

5. Untuk mencari serial, kita menggunakan langkah yang berbeda dengan teknik patching dengan melakukan tracing satu per satu terhadap algoritma yang dibuat program, maka dari itu kita akan set breakpoint pada saat user meng-klik “check!”.

Terlebih dahulu anda harus mengetahui dasar2 WinAPI(Application Programmable Interface), ok akan kita pahami dengan learning by doing. Download dulu help untuk winAPI di

http://users.ugent.be/~fschoonj/modula2/win32hlp/win32.zip

extract dan tambahkan help file tersebut pada olly dengan cara : pilih menu Help > select API help file dan pilih file win32.hlp. Cukup sampai disini dan kita lanjutkan find the serial…

6. Pada main window, klik kanan > search for > All intermodular calls. Nha, disitu ada beberapa fungsi API, kita akan mencari fungsi API apakah yang digunakan untuk mengambil inputan pada window dialog? Adalah GetDlgItemTextA atau GetDlgItem atau GetDlgItemText atau mirip2 seperti itu deh pokoknya hehe….

7. Dobel klik pada fungsi GetDlgItemTextA maka akan kembali ke window utama. Set breakpoint(F2) pada baris

004012C8 . E8 77010000 CALL <JMP.&user32.GetDlgItemTextA> ; \GetDlgItemTextA

Run Program(F9), program elf_cm1.exe akan dijalankan dan masukkan sembarang serial, untuk contoh disini misalnya : 123, klik “check!” maka proses akan pause sampai pada tanda breakpoint tadi. Untuk mengetahui lebih detail tentang GetDlgItemTextA, klik kanan pada baris itu dan pilih help on symbolic name (Ctrl+F11). Sekarang dah ngerti kan kenapa kita membutuhkan reference buat WinAPI?

8. Sekarang perhatikan pada keterangan Return Value pada help WinAPI

Return Value

If the function succeeds, the return value specifies the number of characters copied to the buffer, not including the terminating null character.
If the function fails, the return value is zero.

Artinya, jika berhasil mendapatkan serial yang diinputkan user, maka return value akan bernilai jumlah karakter yang akan disimpan di EAX. Mengapa disimpan di EAX? karena EAX digunakan untuk Accumulator/perhitungan. Gak percaya? pencet F8 dan Lihat window register pada sebelah kanan, maka akan bernilai 00000003 (sesuai dengan jumlah karakter yg diinputkan).

9. Pencet F8 5x atau sampe ketemu baris

004013E9 > \83F8 05 CMP EAX,5

Apa maksudnya? pada baris itu akan membandingkan nilai register EAX yang bernilai 3 dengan 5, yang berarti bahwa karakter yang dimaksudkan harus berjumlah 5.

10. Set breakpoint pada baris itu dan hapus breakpoint sebelumnya karena kita udah gak pake lagi. Restart program(F2) dan F9 untuk run program, isi dengan serial 12345.

110. Sebelum pencet F8, perhatikan nilai register Z pada window register sebelah kanan yaitu bernilai 0, sekarang pencet F8 dan nilai register akan bernilai 1. itu adalah karena fungsi CMP EAX, 5 dan fungsi JNZ (Jump is not Zero) pada baris selanjutnya adalah membandingkan register Z apakah bernilai 0 atau 1.
Jika Z bernilai 0, maka akan jump ke VA 0040132C, tetapi jika tidak, maka lanjutkan memproses baris selanjutnya.

12. Tekan F8 terus menerus sambil melihat window register sebelah kanan, perhatikan pada register ESI dan EDI. ESI akan bernilai serial yang dimasukkan dan akan dibandingkan dengan nilai EDI yang berasal dari program, stop jika ketemu baris

004012E9 > /A7 CMPS DWORD PTR DS:[ESI],DWORD PTR ES:[EDI]

disitu akan dibandingkan string ESI dan EDI. CMPS akan merubah nilai register Z menjadi 0 jika tidak sama atau 1 jika sama.
Dari sini sebenernya sudah bisa ditebak jika serial tidak sama dengan “fubar” maka akan “Incorrect”. OK sekarang kita coba dengan terlebih dahulu set breakpoint pada baris CMPS tadi dan hapus breakpoint sebelumnya …

13. Pencet F2, F9 masukkan “fubar” dan pencet “check!”, maka akan berhenti pada breakpoint dan pencet F9 lagi. Apa yang terjadi?
Uppppsssssss… ternyata masih salah dengan error message yang berbeda… hmm berarti kracking blm berhenti sampe disini, sabar…sabar hehe…

14. Pencet lagi F2, F9 masukkan sembarang serial tetapi harus 5 karakter. Pencet F8 sehingga perintah CMPS dieksekusi, sampai pada tahap ini sebenernya anda dapat langsung merubah nilai Z sehingga baris JNZ tidak akan dieksekusi tetapi hanya bersifat sementara, caranya gimana? arahkan mouse pada register Z dan dobel klik, maka nilai Z akan berubah menjadi 1.

15. Pencet F8 terus menerus sambil memperhatikan register ESI dan EDI karena akan ada proses CMPS lagi

Ketemu serial yang lain kan? ok kita coba masukin serial “word?” tanpa petik dan lihat hasilnya. Kalau masih salah juga berarti ya harus debug lebih lama lagi hehe…

That’s all folks

Dari penjelasan tutorial diatas sengaja saya buat panjang agar mudah dimengerti disamping karena saya termasuk beginner ya otomatis seperti itu yang bisa saya jelaskan

Dan perlu diingat bahwa ini bukanlah satu2nya cara untuk mengetahui serialnya, yang dibutuhkan hanyalah logika.

**Ilmu tidak akan membunuh kita,
orakanggo

10 thoughts on “Solusi Serialme elf_cm1.exe

  1. Abu Ja'far

    mas, udah di praktekan nih, rada ngerti dikit sih…
    terus terang, keinginan bisa menguasai tehnik reverse seperti ini, sudah 6 tahun di pendam, tetapi kok masih susah ya masuk ke otak ini? apa kurang latihan?

    saya dulu (6 tahun yang lalu), bela-belain beli CD tutorial yang ada di jual buat belajar nge-reverse seperti diatas, baca tutor di internet dan lain-lain, taunya cuman nge-patch offset ‘yang dicurigai’ buat di bypass, dan itupun saya trace satu-per-satu seharian dan nebak asal aja…
    dan, ada sih yang berhasil, walau cuman 1 aplikasi, kayak myBIZ (bypass kondisi dongle), hahahaha, itu pun udah buat bangga (hahahaha, gak pantes bangga kali ye…)

    mas, kasih step-by-step nya buat belajar ini, mulai dari mana, trus referensi ampuh dari mana dan jurus jitu lainnya…(contoh kayak mas dulu belajar dari nol sampe ngerti dan nguasai)

    makasih mas atas ilmunya…

    Balas
  2. Ping balik: Ikatan Alumni SMK Telekomunikasi Malang » Blog Archive » Solusi Serialme elf_cm1.exe

  3. sijunka

    kok ga bisa ya?
    word itu serialnya kan?
    ud dicoba kok hasilnya tetep no, not really.
    —Kalau masih salah juga berarti ya harus debug lebih lama lagi hehe…—
    harus di debug bagaimana lagi?🙂

    Balas
  4. sijunka

    Numpang nanya lagi
    selain GetDlgItemText,GetDlgItemText atau sejenisnya, apa masih ada fungsi API lainnya yang digunakan untuk mengambil inputan serial pada window dialog ?
    Kalau masih ada tolong dibagi2 ilmuna Gan🙂

    Balas
  5. orakanggo Penulis Tulisan

    serialnya “word?” kalo pake username 12345

    GetDlgItemText,GetDlgItemText itu API yang umum dipake tetapi jika pemrogramnya udah advanced, biasanya diacak ato pake API yang lain yg gak umum.

    cb deh ikutin langkah2nya lagi

    Balas
  6. Shandy Alensky

    numpang nanya, kalo fungsi API untuk membaca port paralel / usb apa ya? Bisa gak ya kalo olly deguger nge-crack software yang menggunakan dongle sebagai media proteksinya ? Mohon pencerahannya bos

    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