EasyRecovery 5.0 5個檔案限制的破解全攻略(拯救被誤除檔案的朋友們^_^!) (4千字)

看雪資料發表於2000-09-20

EasyRecovery 5.0  5個檔案限制的破解全攻略。
破解者:小牧童 
Url: http://www.newhua.com.cn/down/ERPERFRE.exe
簡介:這是一個非常好的反刪除軟體,實際使用功能強於Recover 4 all等其它反刪除軟體,正好一個朋友的計算機不小刪除了很重的資料,請我幫忙恢復,於是到華軍的軟體園下載了幾個反刪除軟體,其它幾個軟體都找不到他刪除了的目錄,唯有這個東東能找到被刪除的目錄和檔案,但每執行一次操作只能儲存5個被刪除的檔案,而且有超過5個以上的檔案時有時不能儲存10K以上的檔案(儲存為0字),由於在朋友的大硬碟上執行一次反刪除操作要20多分鐘,要想破解實在受不了。

破解步驟:
1.    找來Pqmagic對我的硬碟進行分割槽,分出一個15M小區,目的使其執行時間儘可能變短。
2.    用W32DASM對其進行靜態反彙編查詢關鍵程式碼。
根據出錯資訊找不到關鍵點,出現出錯資訊5個檔案早已存完了,關鍵點在出錯資訊之前。

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A6DC(C)
|
:0041A81D 8B0D38865200            mov ecx, dword ptr [00528638]
:0041A823 85C9                    test ecx, ecx
:0041A825 0F84F0FEFFFF            je 0041A71B
:0041A82B 8B01                    mov eax, dword ptr [ecx]

* Possible StringData Ref from Data Obj ->"Data Recovery Limited to five "
                                        ->"files."        //這裡是限制提示。
                                  |
:0041A82D 68C4B35100              push 0051B3C4
:0041A832 E9E1FEFFFF              jmp 0041A718

***這段程式碼從0041A6DC而來,往上去看看。

* Referenced by a CALL at Address:
|:00417FAB 
|
:0041A6D0 8A442404                mov al, byte ptr [esp+04]
:0041A6D4 81ECD8010000            sub esp, 000001D8
:0041A6DA 84C0                    test al, al
:0041A6DC 0F853B010000            jne 0041A81D
:0041A6E2 8B0D34865200            mov ecx, dword ptr [00528634]
:0041A6E8 85C9                    test ecx, ecx
:0041A6EA 7407                    je 0041A6F3
:0041A6EC 6A64                    push 00000064
:0041A6EE E8AD920000              call 004239A0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041A6EA(C)
|
:0041A6F3 8B0D38865200            mov ecx, dword ptr [00528638]
:0041A6F9 85C9                    test ecx, ecx
:0041A6FB 740A                    je 0041A707
:0041A6FD 8B11                    mov edx, dword ptr [ecx]

* Possible StringData Ref from Data Obj ->"EasyRecovery has successfully "
                                        ->"copied your files.  You will find "
                                        ->"the data stored on the destination "
                                        ->"you specified."
                                  |
:0041A6FF 6840B55100              push 0051B540

這裡竟有一段"EasyRecovery has successfully "的提示。更改上面的幾處跳轉語句仍不能解決問題,看來關鍵點仍在這之前。這段程式碼是由00417FAB呼叫的,再看看00417FAB處的語句:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417F6B(C)
|
:00417F81 8B0DC87C5200            mov ecx, dword ptr [00527CC8]
:00417F87 68C8745200              push 005274C8
:00417F8C 53                      push ebx
:00417F8D 51                      push ecx
:00417F8E 8B0D3C7F5200            mov ecx, dword ptr [00527F3C]
:00417F94 E817F6FFFF              call 004175B0
:00417F99 68D0070000              push 000007D0

* Reference To: KERNEL32.Sleep, Ord:0296h
                                  |
:00417F9E FF1588524B00            Call dword ptr [004B5288]
:00417FA4 8A15FC805200            mov dl, byte ptr [005280FC]
:00417FAA 52                      push edx
:00417FAB E820270000              call 0041A6D0    //這裡就是呼叫上面的提示程式碼
:00417FB0 A078AA5100              mov al, byte ptr [0051AA78]
:00417FB5 83C404                  add esp, 00000004
:00417FB8 3AC3                    cmp al, bl
:00417FBA 881DFD805200            mov byte ptr [005280FD], bl
:00417FC0 891DA47F5200            mov dword ptr [00527FA4], ebx

為了驗證自已的判斷,我將00417FAB處的程式碼“E820270000“改為“9090909090“(空操作)果真在提示之前5個檔案已存完。真正的比較應還在這個CALL之前。於是在00417F94處設斷點。攔到後用F8進去。再下BPX WRITEFILE然後一直按F10看哪個CALL呼叫是寫檔案的。不想卻發現了下面的程式碼。
:00417BC1 A1306C5200              mov eax, dword ptr [00526C30]
:00417BC6 83C408                  add esp, 00000008
:00417BC9 40                      inc eax
:00417BCA 83F805                  cmp eax, 00000005  //哈哈!職業最敏感的地方
:00417BCD A3306C5200              mov dword ptr [00526C30], eax
:00417BD2 7207                    jb 00417BDB  //這裡改為JMP 破解完畢。
:00417BD4 C605FC80520001          mov byte ptr [005280FC], 01  //5個檔案之後這裡是設標誌了。


經此破解後10K限制也解除了。

3.修改:查83 f8 05 a3 30 6c 52 00 72 07  將72改為EB

謹以此文拯救被誤除檔案的朋友們。

相關文章