• 标 题:Asprotect 1.2x加壳的Advanced PDF Password Recovery Pro 1.70脱壳 (3千字)
  • 作 者:fwnl
  • 时 间:2002-5-1 14:49:45
  • 链 接:http://bbs.pediy.com

Asprotect 1.2x加壳的Advanced PDF Password Recovery Pro 1.70脱壳
crack by fwnl
软件说明:可以帮你恢复PDF的加密文件。密码恢复的速度相当快,使用上也相当简单。可以帮你解开多达32位的密码。

软件下载:http://extend.hk.hi.cn/~czy/dl/apprp10.zip
破解工具:loader,trw2000, superbpm,Import REConstructor v1.4.2+ winhex

首先要谢谢电神大哥的指点(电神真是大好人,呵呵),没有他的指点,我现在还在拿着这个软件晕 :)

这个软件比较怪,用loader找到的入口是 jmp xxxxxxxx,开始我还以为找错了,后来脱出后用peid看是Watcom C/C++编写的软件,可能与vc++不一样吧.

一.找入口点
  感谢fs0给我们带来loader这么个一个超cool的工具,用loader载入apdfprp.exe轻易找到入口
41a964.

二.用trw2000初步脱壳

  下面要在入口处脱壳,打开SuperBPM,点erase,用trw载入apdfprp.exe,下g 41a964. 接着下pedump脱出程序.

三.修复import table
  我脱这个程序的难点就在这里,因为用Import REConstructor v1.4.2+,在oep那里填0001a964,点IAI AutoSearch,结果说无效 :(  后来问电神大哥说oep那里要填00001000(至于为什么我就不清楚了,那位知
道的能不能告诉我一下,是不是Watcom C/C++的原因??)

  打开原加壳程序,在Import REConstructor v1.4.2+ 的 Attach to an Active Process 窗口中选取apdfprp.exe的进程,然后在下方的oep处填入00001000,点IAI AutoSearch,再点Get Imports 然后点Show Invalid,在Imported Functions Found窗口里的无效地址上点鼠标右键,选Trace Leve11(disasm),再点show invaids,发现还有几个没有修复,再次在那几个没有修复的地址上点鼠标右键.
  选中Plugin Tracer(Asprotect 1.2X Emul),再点show invaids应发现所有的dll显示 valid:Yes了。
因为真正的入口是41a964,所以这时在oep那里填入0001a964,再点Fix Dump,选中你用trw2000 pedump出的文件修复.

四.程序除错
运行脱后的程序报 API not found, please contect technical support
用trw2000载入下断点 bpx messageboxexa ,F5返回,程序被中断,按F10可看出 出错对话框地址是
00409518

0167:004094FB A3F0084500      MOV      [004508F0],EAX
0167:00409500 85C0            TEST    EAX,EAX
0167:00409502 7526            JNZ      0040952A    //只要这里改成jmp 409552(7526改EB4E)就可以了
0167:00409504 6A10            PUSH    BYTE +10
0167:00409506 68F9424400      PUSH    DWORD 004442F9
0167:0040950B 6804434400      PUSH    DWORD 00444304
0167:00409510 2EFF15FC254400  CALL    NEAR [CS:004425FC]
0167:00409517 50              PUSH    EAX
0167:00409518 2EFF1554264400  CALL    NEAR [CS:00442654] //这里报API not found, please contect technical support

0167:0040951F 6A00            PUSH    BYTE +00
0167:00409521 2EFF15F8264400  CALL    NEAR [CS:004426F8]
0167:00409528 EB28            JMP      SHORT 00409552
0167:0040952A 6A10            PUSH    BYTE +10
0167:0040952C 57              PUSH    EDI
0167:0040952D FF15F0084500    CALL    NEAR [004508F0]  //这里弹出警告
0167:00409533 85C0            TEST    EAX,EAX
0167:00409535 751B            JNZ      00409552        //关键
0167:00409537 6A10            PUSH    BYTE +10
0167:00409539 6835434400      PUSH    DWORD 00444335
0167:0040953E 683A434400      PUSH    DWORD 0044433A
0167:00409543 2EFF15FC254400  CALL    NEAR [CS:004425FC]
0167:0040954A 50              PUSH    EAX
0167:0040954B 2EFF1554264400  CALL    NEAR [CS:00442654]

最好还是要谢谢电神大哥,没有他的指点,我是怎么也脱不了这个壳的, :)
                         
                                                                            fwnl
                                                                          2002.5.1
                                                                            长沙