• 标 题:EasyRecovery 5.0 5个文件限制的破解全攻略(拯救被误除文件的朋友们^_^!) (4千字)
  • 作 者:小牧童
  • 时 间:2000-9-20 23:14:27
  • 链 接:http://bbs.pediy.com

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

谨以此文拯救被误除文件的朋友们。