Oktober 1998

Cracking Mirc Ver.5x

Win '95 PROGRAM Win Code Reversing  

 

ditulis oleh :

h3n

 

 

[eKH]

   

 

   Jenis Program : Internet Relay Chat

Tempat Download : http://www.mirc.co.uk

 
 

    Peralatan:

SoftIce 3.2, Quick View

 

Rating

Easy ( X )  Medium (   )  Hard (    )  Pro (    ) 

There is a crack, a crack in everything. That's how the light gets in.

    


"Cracking Mirc Ver 5x"

ditulis oleh : h3n
 
 

Pendahuluan

  Program Mirc adalah program chatting di Internet. Program ini dibuat oleh Khaled Mardam-Bey.

Cara Proteksi dari program ini 

Proteksi dari program mirc adalah serial number yang dihasilkan oleh nama yang kamu masukkan. Serial number itu sendiri terbagi dua bagian. Bagian pertama adalah sebelum tanda "-" dan sesudah tanda "-". Jadi maksudnya serial number yang akan kita masukan akan dipisah oleh tanda "-".

Misalnya : 1234-56789

Note : Untuk bagian pertama wajib 4 karakter. ( 1234 ).

Caranya 

Pertama- tama lu pasti binggung mo mulai dari mana kan. Pertama coba lu masukkan nama dan serial number palsu dulu. Dan apa yang terjadi "bing" ( ada suara kan ) baru kemudian diikuti oleh window error message yang memberitahukan bahwa nama dan serial kamu salah.

Hm.. jadi sebelum mengeluarkan pesan dia mengeluarkan bunyi dulu. Kemudian lu masuk ke dalam Sofice ( ^D ). Tekan bpx messagebeep. ( Menyuruh program berhenti pada proc messagebeep ). Messagebeep adalah procedure untuk mengeluarkan bunyi.

Sesudah itu keluar dari Softice (^D), masukan nama dan serial palsu. Misalnya nama : h3n - [eKH], serial number : 1234-5678. Kemudian Enter.

Bumm.. Kamu akan masuk ke dalam softice dan mendarat di USER32!MessageBeep. Kemudian tekan F12 untuk keluar dari proc Message Beep dan kembali ke proc pemangil messageBeep tsb.

:00437DF7    PUSH 00
:00437DF9    CALL USER32!MessageBeep

Gulung layar ke atas, untuk mencari baris yang memanggil proc Message Beep ini.

Ahaa, ketemu...

:00437D77    CALL 00817F8            <- Mencek Nama dan Nomer Serial
:00437D89    TEST EAX, EAX           <- Panjang Serial Number
:00437D8B    JZ 00437DF7             <- Jika 0 maka lompat ke 00437DF7

Tentunya kita ingin tauk apa sih yang dicek pada Call 0048e608. Lalu lu tekan bc* ( bersihkan semua breakpoint ). Terus bpx 015F:00437D77 ( Break point pada pada alamat 015F:00437D77, Tentunya alamat ini akan berbeda dengan alamat di komputer kamu ). Lalu keluar dari SoftIce (^D). Masukkan kembali nama dan serial kamu seperti langkah diatas kemudian enter.

Bumm.. Kamu akan masuk ke

:00437D77  push 004bfdf0      <- Nama yang tadi lu masukkan

:00437D7C  push 004BFB34      <- Serial palsu yang lu masukkan

:00437D81  CALL 00817F8       <- Mencek Nama dan Nomer Serial

Tekan F8, untuk masuk ke dalam call,

F10 sampai kamu mencapai,

:0048E615    CALL 004B39C8    <- Rutin untuk mengecek panjang nama

Jika lu liat 3 baris diatas call ini lu akan liat ESI berisi serial palsu dan EBX berisi nama palsu yang pertama kali kamu isi. Cara melihat isi ESI dan EBX ( d ESI atau d EBX ).

Tekan F10 untuk melewati call tsb.

:0048E61B    CMP EAX, 05
:0048E61E    JAE 0048E624        <- Lompat jika lebih kecil dari 5 ( Serial number bag I )

Tekan F10 sampai...

:0048E626    CALL 0048E528

Tekan F8 untuk masuk kedalam call,

Tekan F8 sampai..

:0048E534    PUSH 2D

Jika lu tekan "? 2D". Maka akan kelihatan simbol "-". Jadi program sedang mencari simbol "-" dalam serial number.

F8 untuk masuk kedalam call selanjutnya

:0048E537    CALL 004B3974

Rutin dibawah ini adalah rutin untuk menghitung banyaknya karakter nama/serial number yang kamu masukkan

:004B3978    MOV EDI, [EBP+08]        <- Serial number palsu dalam EDI
:004B397B    MOV EDX, EDI             <- Sekarang EDX berisi serial number
:004B397D    MOV ECX, FFFFFFFF        <- Memulai penghitungan

Note: Setiap kali kamu melihat FFFFFFFF dimasukkan ke dalam ECX itu artinya untuk menghitung panjang karakter dari nama / serial number kamu.

:004B3982    XOR AL, AL                <- AL dinolkan
:004B3984    CLD        <- Bersihkan semua flag untuk operasi string
:004B3985    REPNZ SCASB               <- ketika tdk sama 0 baca string
:004B3987    NOT ECX                   <- ECX = panjang string + 1
:004B3989    MOV EDI, EDX              <- EDI berisi serial palsu
:004B398B    MOV AL, [EBP+0C]

Ahhha...AL sekarang berisi 2D. Jadi program sekarang sedang mengecek simbol "-" dalam serial number

:004B398E    REPNZ SCASB                <- Ketika tidak 0 baca string

:004B3990    JNZ 004B3998         <- Tidak ada "-", lalu lompat
:004B3992    LEA EAX, [EDI-01]    <- Berisi serial number dari "-" sampai
                                  <- serial number terakhir di EAX

F8 sampai ...

:0048E53C    ADD ESP, 08
:0048E53F    MOV EBX, EAX     <- Berisi serial number dari "-" sampai
                              <- serial number terakhir di EBX

:0048E541    TEST EBX, EBX    <- Apakah EBX berisi nilai
:0048E543    JNZ 0048E54C     <- Jika tidak 0 maka ada

Program akan lompat ke :0048e54c jika ada simbol "-" didalam serial number.

:0048E54C  MOV BYTE PTR [EBX], 00 <- ganti simbol "-" menjadi nol
:0048E54F  PUSH ESI

Jika kamu tekan d ESI maka akan terlihat serial number tanpa simbo "-"

:0048E550    CALL 004B8D5C

F8 untuk masuk kedalam call
F8 sampai

:004B8D66    MOV AL, [EDX]

baris diatas akan memasukkan serial palsu ke dalam al
F8 sampai

:004B8DA0    CMP AL, 30         <- Apakah karakter '0'?
:004B8DA2    JL 004B8DA8
:004B8DA4    CMP AL, 39         <- Apakah karakter '9'?
:004B8DA6    JLE 004B8D90

Baris diatas adalah untuk mengecek apakah Al berisi karakter diantara karakter '0' dan '9' 
F8 hingga...

:0048E56A    CALL 004B8D5C

Pada baris ini program akan memasukkan simbol "-" kembali kedalam serial number.
F8 untuk masuk kedalam call.

F8 hingga mencapai

:0048E577    CALL 004B39C8

Sebelum sampai call diatas program akan memasukkan nama ke dalam eax dengan cara push

F8 untuk masuk ke dalam call diatas
 
Jika lu pelajari call diatas seperti call tsb berguna untuk menghitung banyaknya karakter nama yang kamu masukkan.

F10 hingga kamu keluar dari call tsb
Kemudian F8 hingga ..

:0048E594    MOVZX ESI, BYTE PTR [ECX]
:0048E597    IMUL ESI, [EAX*4+004CCB30]
:0048E59F    ADD EBX, ESI
:0048E5A1    INC EAX
:0048E5A2    CMP EAX, 26
:0048E5A5    JLE 0048E5A9

Hm.. Sepertinya baris diatas melakukan suatu perhitungan.
F8 hingga mencapai :0048E5AE

:0048E5AE    JL 0048E594

Selanjutkan lu akan melihat..

:0048E5B0    CMP EBX, [EBP-04]

Jika lu d EBP-04 akan terlihat

1617:00034567  FD 02 00 00 00 00......

Hm.. FD 02 apa maksudnya yah ? Coba ? FD 02. Binggo akan terlihat 1234 ( serial number sebelum simbo "-" ). Aha rupanya baris diatas sedang membanding serial number bagian I ( serial number sebelum simbol "-" dengan sesuatu. Berarti ini pasti serial number asli juga sebelum tanda "-". Kemudian elo ketik ? EBX, maka akan terlihat

xxxxxxxx 00005660 "xxxxx"

Nah 5660 inilah serial number aslinya. Catat di dalam kertas. Eiitt tapi ini belom selesai. Soalnya masih ada serial number yang bagian keduanya. Masih ingat kan serial number yang sesudah simbol "-"

Kemudian bd* (Disable breakpoint). Kemudian lu ketik bpx 15F:0048E5B0 ( Alamat ini akan berbeda dengan alamat di komputer lu, jadi disesuaikan. pada alamat CMP EBX, [EBP-04] diatas ).

Sekarang keluar dari Softice ( ketik X, sampai keluar dari Softice dan kembali ke mirc ). Kemudian lu masukkan nama dan serial kembali. Tapi ingat isikan serial number sebelum simbol "-" dengan serial yang tadi kamu catat. Untuk serial number sesudah simbol "-" adalah terserah lu.

Setelah itu register, bumm.. lu masuk lagi ke dalam SoftIce.

:0048E5B0  CMP EBX, [EBP-04] 
:0048E5B3  JZ 0048E5B9       

Tekan F8 hingga :

:0048E5EE    JL 0048E5CD

F8 baris diatas hingga

:0048E5F0    CMP EBX, [EBP-08]

Hm.. Perbandingan lagi. Ketik ? EBP-08, binggo akan terlihat serial number sesudah simbol "-" seperti yang tadi kamu masukkan. Kemudian ketik ? ebx, Nahhh ini serial number asli untuk sesudah simbol "-". Catat di dalam kertas.

tekan bc* ( Clear all breakpoint ). Tekan X untuk keluar dari SoftIce. Sekali kamu masukann nama dan Serial number yang telah kamu catat tadi. Bangg.. Yess Itsss workk :).

Program telah dicracked. Lu baru saja membeli produk Mirc. :)

Untuk serial number milik gua

Nama : h3n - [eKH]

Serial Number : 5996 - 430478

 

Berikut ada tambahan dari flag eRRatum, yakni rutin keygenerator mIRC 5.x dalam Pascal :

Program mIRC32 ;
uses crt ;

const magictable : array[0..159] of integer = ($0B, $00, $00, $00, $06, $00, $00, $00, $11, $00, $00, $00, $0C, $00, $00, $00
, $0C, $00, $00, $00, $0E, $00, $00, $00, $05, $00, $00, $00, $0C, $00, $00, $00
, $10, $00, $00, $00, $0A, $00, $00, $00, $0B, $00, $00, $00, $06, $00, $00, $00
, $0E, $00, $00, $00, $0E, $00, $00, $00, $04, $00, $00, $00, $0B, $00, $00, $00
, $06, $00, $00, $00, $0E, $00, $00, $00, $0E, $00, $00, $00, $04, $00, $00, $00
, $0B, $00, $00, $00, $09, $00, $00, $00, $0C, $00, $00, $00, $0B, $00, $00, $00
, $0A, $00, $00, $00, $08, $00, $00, $00, $0A, $00, $00, $00, $0A, $00, $00, $00
, $10, $00, $00, $00, $08, $00, $00, $00, $04, $00, $00, $00, $06, $00, $00, $00
, $0A, $00, $00, $00, $0C, $00, $00, $00, $10, $00, $00, $00, $08, $00, $00, $00
, $0A, $00, $00, $00, $04, $00, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00) ;

var Username : string ;
i,j : integer ;
serial,k : longint ;

begin
clrscr ;
writeln('mIRC 5.x Key-Generator by flag eRRatum') ;
writeln('Please enter username (more than 4 char !) : ') ;
readln(username) ;
if length(username) <=4 then

begin
  Textcolor(LightRed) ; writeln('Enter more than 4 char, Dumbo !') ;
halt ;

end;
for i:=4 to length(username) do

begin
  serial:=serial+(ord(username[i])*magictable[j*4]) ;
  inc (j) ; if j>$26 then j:=0 ;
end;

write('Your Serial is : ',serial,'-') ; serial:=0 ; j:=0 ;

for i:=4 to length(username) do
  begin
  k:=ord(username[i]) * ord(username[i-1]) ;
  serial:=serial+(k * magictable[j*4]) ;
  inc(j) ; if j>$26 then j:=0 ;
  end ;
writeln(serial) ; textcolor(lightred) ;

end.

Akhir Kata 

Semoga tutorial singkat tadi dapet memberikan gambaran ke elu, mengenai cara mengcrack program Shareware, Ketemu lagi deh di tutorial yang lain, salam dari gua ( h3n )!!!

  Property of eKH@1998

GreetZ

  To All my friend in [eKH], buat grup cracking dan hacking baru Speltranix [SPX], selamat berdiri sendiri :), buat abang abang di kecoak elektronik, buat System Error yang ngasih space ke kita, dengan baeknya, dan lain lain ...