昨天發了個3.53的破解版,當時沒考慮到,不同的地區所用的用戶端是不同的,所以就在這把破解過程介紹一遍吧...
我所指的破解不是什麼高深的東西,而是簡單的jmp(不過也不要小看了jmp,繞過註冊驗證之類的都可以jmp,插入代碼也可以jmp到自己的代碼地區完成後再jmp回來)...根據大姚的說法只要把監控線程給終結掉,或者不讓他啟動應該就能達到破解的目的,但是在我的機子上,開著虛擬機器共用上網,3.72並沒有自動登出,我也就沒必要去探究jmp掉哪個線程了。
Dr.com每次一連上網就會彈出一次IE,這個特煩人,我拿到原版第一件想做的事情就是去掉彈出IE,也是一個jmp,和jmp監控線程是一樣的原理。
首先用PEID查下殼,發現加的是UPX的殼,這種殼熟練了以後是最容易脫的。詳細的脫殼就不說了,這裡給出一個簡便方法,對於大部分UPX的殼,你只要一直按pagedown就能很快找到papad,因為papad下面幾行是0000,空的...
004E7DC6 61 popad
004E7DC7 8D4424 80 lea eax, dword ptr [esp-80]
004E7DCB 6A 00 push 0
004E7DCD 39C4 cmp esp, eax
004E7DCF ^ 75 FA jnz short 004E7DCB
004E7DD1 83EC 80 sub esp, -80
004E7DD4 - E9 6639F3FF jmp 0041B73F <--F7跟過去就是OEP了
004E7DD9 0000 add byte ptr [eax], al
004E7DDB 0000 add byte ptr [eax], al
004E7DDD 0000 add byte ptr [eax], al
004E7DDF 0000 add byte ptr [eax], al
004E7DE1 0000 add byte ptr [eax], al
004E7DE3 0000 add byte ptr [eax], al
單步步入跟到0x0041B73F處...
0041B73F 55 push ebp <--這裡就是OEP了
然後用Ollydump或者LordPE把整個記憶體dump出來,再重建IAT就行了,脫殼就完成了...
再用OD載入脫殼後的dr.com,調用IE開啟指定網頁一般會用CreateProcess這個API,快速鍵Ctrl+N調出函數名稱,再找到CreateProcess的地址...
在主線程模組搜尋FF 15 FC D1 41 00 即call CreateProcess 的機器碼
找到所有調用CreateProcess的地方F2下斷點,再F9讓程式停在斷點處,找到建立IE進程的CreateProcess處,在該call的下面一行按:(冒號)做個標籤here,往上找到第一個push的地方,按空格鍵修改成 jmp here,這樣就把IE彈出框給jmp掉了,再儲存修改到檔案就OK了。
如果要jmp掉createthread也是一樣的...