Suatu ketika aku dapat tawaran pekerjaan yang cukup ”lucu” yaitu mem bypass sebuah program yang terproteksi oleh sebuah parallel port dongle, atau biasa disebut software protection key. Hal ini aku anggap lucu karena aku harus meng”crack” sebuah program milik orang lain. Tetapi setelah melihat case nya yaitu karena dongle key dari perusahaan itu rusak dan untuk membeli yang baru sangat mahal karena harus beli software nya sekaligus maka aku terima juga pekerjaan itu (ujung – ujung nya duit juga akhirnya hik hik.) “poor me”
What’s Dongle
Dongle atau sering disebut hcu atau software protection key, adalah proteksi suatu software menggunakan hardware yang biasa terpasang pada parallel port atau usb port. Fungsinya ?.... tentu saja untuk otoritas dari pembuat software sehingga hanya personal yang diijinkan / membeli saja yang bisa menjalankan software tersebut. Biasanya ada proteksi lain yang berbentuk “register number”, jadi bukan berbentuk hardware, tapi sayangnya untuk type register number ini begitu orang sudah punya, mereka bisa menggandakan ke computer lain. Cukup dengan mengisi register number yang sama. Beda dengan dongle hard key ini, karena untuk menjalankan program tersebut sebuah dongle harus terpasang pada computer tersebut.
Dongle berisi eeprom atau eprom yang berfungsi untuk menerima routine program dari software terkait.
Unfortunately, aku tidak bisa membahas secara detail apa yang aku lakukan untuk melakukan dumper dongle tersebut,(lagi bt nih). Nggak ding ini karena privacy customer aja (huek). Point nya. Lakukan debug atau disassembling pada executable program yang ada. Terus gunakan juga program untuk memonitoring parallel port yang bisa di download di internet.
Sometime, kita menemui program yang ter “dongle” yang langsung melakukan routine “ KEY NOT FOUND”. Ada juga yang beberapa saat setelah program di eksekusi baru muncul error tersebut. Hal ini akan berpengaruh pada pencarian reg routine protection program tersebut saat dilakukan disassembling. Hal yang ke dua menjadi lebih sulit karena call routine yang di cari menjadi semakin “deeper”
Cara yang dilakukan adalah mencari routine yang men secure “call key” yang membolehkan untuk menjalankan program tersebut. Jadi protection code kita cari terus di eliminate menggunakan perintah lain. Pokoknya, melakukan trace assembler pada pekerjaan ini cukup mengasyikkan apalagi program yang di stack cukup complicated.
Bagi anda yang ingin melakukan Crack dongle ini, banyak situs yang bisa dibaca dan dipelajari kok
Contoh debug yang aku ambil dari sebuah situs
the line 2423 is the last one of the HLVDD.DDL (you can read this info clicking in the line and looking at the right details pane of Smartcheck), as we can see at the return from dll the code execute two VB routines _VbaSetSystemError and immediately _VbaStrCopy.
Now i want to look the disassembled code; i run IDA, load the 55mb database, go to names window, search for a _VbaSetSystemError call followed by _VbaStrCopy call.
I jump to the following part of the code:
007FE1F5 push ecx
007FE1F6 lea edx, [ebp+var_60]
007FE1F9 push edx
007FE1FA mov ax, [ebp+var_6C]
007FE1FE push eax
007FE1FF mov cx, [ebp+var_30]
007FE203 push ecx
007FE204 call sub_447FCC <---- call for HLVDD.DLL
007FE209 mov [ebp+var_B4], ax
007FE210 call ds:__vbaSetSystemError <---- (see line 2424)
007FE216 mov dx, [ebp+var_B4]
007FE21D mov [ebp+var_50], dx
007FE221 mov edx, offset off_455B80
007FE226 lea ecx, [ebp+var_28]
007FE229 call ds:__vbaStrCopy <---- (see line 2427)
007FE22F movsx eax, [ebp+var_50]
007FE233 test eax, eax
007FE235 jnz loc_7FE312 <---- Patch here
007FE23B call sub_448044
007FE240 mov [ebp+var_B4], ax
007FE247 call ds:__ vbaSetSystemError
007FE24D movsx ecx, [ebp+var_B4]
007FE254 test ecx, ecx
007FE256 jnz loc_7FE312 <---- Patch here
007FE25C mov edx, [ebp+var_70]
007FE25F push edx
007FE260 lea eax, [ebp+var_78]
007FE263 push eax
007FE264 call ds:__ vbaStrToAnsi
Pada line patch here terletak error hardware key not found. Nha pada alamat ini bisa di patching pakai software tertentu sehingga BYE DONGLE KEY.