kracking Biromsoft Calculator v2.1

kracking Biromsoft Calculator v2.1
Tutorial Number : 1
Author : orakanggo
Tools : Ollydbg v1.10, UPX, PEiD
Date : 15112006

Biromsoft calculator adalah program calculator biasa yang mempunyai fitur tambahan yaitu skinnable, karena ini adalah program yang sangat simpel maka sangat sehat untuk dipake coba2 oleh kaum beginner seperti saya
OK let’s do it…

Tools yang dipake cukup Ollydbg, bisa didownload di http://www.ollydbg.de/ dan a little bit of luck hehe..
Tujuan kita adalah untuk dapat menjadikan program itu sbg fully registered, biasanya ada 2 metode yang dipakai untuk menjadikan bagaimana program itu fully registered yaitu dengan mencari serial number dan dengan cara patching(menghasilkan file executable yang baru).
Biasanya patching lebih mudah dilakukan daripada mencari serial number dan cara itu akan kita lakukan pada tutorial ini.

1. Langkah pertama cukup mudah yaitu download program biromsoft calculator v2.1 di http://www.biromsoft.com/ dan install

2. Jalankan biromsoft calculator dengan normal

dan coba klik register, masukkan username dan code apa ajah, disitu akan muncul error message “Sorry, incorrect code” dan catat!!
Kita akan menjadikannya fully registered tetapi bukan dengan cara memasukkan kode melalui Register, tapi langsung patching.
Disitu tertulis This program licensed to: Trial User dan ada days left : 4, dan akan kita hilangkan…

3. Ok, sekarang kita buka Ollydbg dan load file bcalc.exe

4. Wow… ternyata programnya dipacking… tapi jangan takut, akan kita unpack sehingga dapat diload menggunakan Olly

5. Kita membutuhkan tools tambahan untuk mendeteksi packing apakah yang digunakan, dan kita pake yang namanya PEiD, download di http://peid.has.it/ dan install

6. Load bcalc.exe pake PEiD dan akan ketauan bahwa biromsoft dipack menggunakan UPX, so… download http://upx.sourceforge.net

7. Untuk Unpackingnya, buka command prompt ketikkan upx -d <source dir>\bcalc.exe -o <target dir>, contohnya :
Code:

upx -d “c:\program files\brimosoft\calculator\bcalc.exe” -o c:\bcalc1.exe

8. Sekarang load hasil unpacking(bcalc1.exe) di Olly dan boom…. sukses, kita mulai neh….

9. Udah dicatet pessan error yang tadi kan? kita mulai dengan teknik reverse engineering yaitu melakukan trace back dari pesan error tadi.

10. Klik kanan pada main window > Search for > All referenced text strings, kemudian klik kanan lagi search for text dan masukkan “Sorry, incorrect code” (tanpa petik)

Ketemu kan? trus dobel klik pada text itu…

11. Yang perlu diperhatikan adalah kita tidak akan mencari serial number tetapi PATCHING(karena patching lebih mudah wekekek). Jadi, pesan error message itu akan kita abaikan, sekarang scroll ke atas

sampai dengan ketemu baris

010036E9 |. 68 94C50001 PUSH bcalc.0100C594 ; ASCII “Thank you for registration!”

12. Secara normal, program akan men-skip bagian ini jika belum teregistrasi, tetapi kita akan coba “memaksa” program untuk selalu kesini hehe…

13. Caranya, kita akan mencari JUMP yang akan melalui bagian itu, arahkan panah ke atas mulai dari baris itu sampai ketemu baris

0100367E /74 7D JE SHORT bcalc.010036FD

Break point pada baris di atas atau tekan F2, trus tekan Step Over (F8), apa yang terjadi? olly akan melompat ke alamat 010036FD.

JUMP tersebut melompati bagian

010036E9 |. 68 94C50001 PUSH bcalc.0100C594 ; ASCII “Thank you for registration!”

sehingga tidak akan pernah dieksekusi selama belum ter-registrasi.

OK, sekarang kita akan kembali ke break point tadi, caranya Restart Program(Ctrl+F2) dan F9, maka akan berhenti di tempat breakpoint tadi, sekarang tau kan artinya breakpoint?

Tahu artinya JE kan? kalo blm tau, baca2 assembler yg basic aja cukup koq…
JUMP tersebut akan dieksekusi jika nilai EAX yang dibandingkan dengan nilai dari alamat DS:[100E500] adalah sama(lihat baris di atasnya).

Trus bagaimana kita mengakali kondisi JUMP tersebut? mudah saja, cukup kita balik logikanya dari JE menjadi JNZ, dobel klik pada baris JE SHORT bcalc.010036FD dan ubah menjadi JNZ SHORT bcalc.010036FD dan wow…
dan tekan F9, GOTCHA… sekarang biromsoft dalam keadaan ter-registrasi dan tidak ada lagi tombol registrasi.

14. Sekarang simpan perubahan dalam file baru, caranya Restart Program, F9, ubah kembali JE menjadi JNZ trus klik kanan > Copy to executable > All modification
Pada window baru klik kanan > save file, simpan menjadi bcalc2.exe.

15. Sekarang kita test bcalc2.exe dengan load ke olly dan F9, done.

Tetapi ada yang salah, kenapa pada “This program licensed to:” adalah kosong? coba kita trace kembali.

Restart Program, klik kanan > search all reference text > search for “Thank you for registration!”
dobel klik pada baris itu, arahkan panah ke atas sampai dengan baris

010036D3 |. E8 6CE7FFFF CALL bcalc2.01001E44 ; \bcalc2.01001E44

fungsi CALL adalah fungsi untuk memanggil suatu prosedur yang terdapat dalam badan lagi program, sekarang kita liat dengan menekan F7(Step into) kemudian akan sampai pada baris

01001E44 /$ 55 PUSH EBP

kemudian tekan F8 sampai ketemu

01001E56 |. 68 BCC00001 PUSH bcalc2.0100C0BC ; /String2 = “Software\\Biromsoft\\Calculator\\”

nha inilah yang kita cari… kira2 kalau anda membayangkan format seperti “Software\\Biromsoft\\Calculator\\” menunjukkan apa?
Registry…. ya benar, registry…
tekan F8 lagi sampai ketemu baris

01001E6E |. FF75 FC PUSH [LOCAL.1] ; /StringToAdd = “UserName”

aha… found it, ini adalah key dalam registry, sekarang kita buka regedit lalu arahkan ke

HKCU\Software\Biromsoft\Username

isi dengan username terserah anda, misalnya orakanggo

done, setelah itu jika file bcalc2.exe dieksekusi, maka tampilannya menjadi

**Ilmu tidak akan membunuh kita
orakanggo

13 thoughts on “kracking Biromsoft Calculator v2.1

  1. Ping balik: Reversing Engineering « Media to share your information,opinion and knowledge

  2. orakanggo Penulis Tulisan

    JNE, JE, JNZ biasanya diawali dengan command CMP atau command perbandingan yang lain.

    CMP biasanya merubah nilai register EAX dan Z flag, dan yang diambil oleh JNE, JE adalah membandingkan register EAX dengan nilai yang dibandingkan, atau jika menggunakan JNZ, maka Z flag yang dibandingkan.

    JNE = Jump if Not Equal
    JE = Jump if Equal
    JNZ = Jump if Not Zero

    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