Acprotect1.10 Build123之Dephi语言篇

[ 来源:http://www.91now.com/down/ | 作者: | 时间:2008-4-17 | 浏览: 人次 ]

 

004F774D    8B048E          mov eax, dword ptr ds:[esi+ecx*4] //下断点Shift+F9中断2,清除内存断点。

004F7750    8B5C8E 04       mov ebx, dword ptr ds:[esi+ecx*4+4]

004F7754    2BC3            sub eax, ebx

004F7756    C1C8 11         ror eax, 11

004F7759    03C2            add eax, edx

004F775B    81F2 B0362B9F   xor edx, 9F2B36B0

004F7761    89048E          mov dword ptr ds:[esi+ecx*4], eax

004F7764    49              dec ecx

004F7765  ^ EB E1           jmp short Pey.004F7748

004F7767    61              popad

004F7768    61              popad

004F7769    C3              retn   //F4直接下来,这时是模拟跟踪的时候了。

........................................................................

Ctrl+T设置暂停运行跟踪条件

将命令是一个复选框打勾,填入  PUSH EBP    ,确定。

这个条件断点如何在命令行设置,肯请诸位大侠不吝指教。为什么要设置这个命令,先前已说明这是Acprotect的死穴之一,对准它点吧。

Ctrl+F11跟踪进入每个Call,1分钟左右。

004254C9    55              push ebp       //Stolen Code

004254CA    8BEC            mov ebp, esp  //Stolen Code   //一切尽在掌握

004254CC    83EC 44         ADD ESP,-10  //Stolen Code  

004254CF    60              pushad

004254D0    60              pushad

005074D1    E8 00000000     call Pey.005074D6

也可以下个12ffc0的硬件写入dword断点,可以断在4254CA这句

........................................................................

这个程序抽了六个字节。

ALT+M 打开内存镜像断点,对准它的第二个死穴点。  

 内存镜像,项目 21

 地址=00401000     //Code段下内存访问断点

 大小=000B7000 (749568.)

 Owner=Pey      00400000

 区段=CODE

 包含=code

 类型=Imag 01001002

 访问=R

 初始访问=RWE

 
F9运行到达

004B7220    BF C12D8DE2     mov edi, E28D2DC1

004B7225    90              nop

004B7226    B8 A86F4B00     mov eax, Pey.004B6FA8   //临时Oep,滚动条向上看,如何判断抽掉多少字节,用滚动条是代码会混乱,然后用Ctrl+向上下键配合保证看到临时Oep代码完整,并且上面的要有几行代码同时存在,如我现在调整的样式。

004B722B    E8 6CF4F4FF     call Pey.0040669C

004B7230    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7235    8B00            mov eax, dword ptr ds:[eax]

004B7237    E8 C48CFCFF     call Pey.0047FF00

004B723C    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7241    8B00            mov eax, dword ptr ds:[eax]

004B7243    BA 80724B00     mov edx, Pey.004B7280

004B7248    E8 AB88FCFF     call Pey.0047FAF8

004B724D    8B0D F4A14B00   mov ecx, dword ptr ds:[4BA1F4]           ; Pey.004BBCAC

004B7253    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7258    8B00            mov eax, dword ptr ds:[eax]

004B725A    8B15 48E44A00   mov edx, dword ptr ds:[4AE448]           ; Pey.004AE494

004B7260    E8 B38CFCFF     call Pey.0047FF18

........................................................................

OD直接修复找到的六个字节。

004B7220    55              push ebp  //用Od插件修正入口为B7220直接脱壳吧,重建输入表的勾去掉

004B7221    8BEC            mov ebp, esp

004B7223    83C4 F0         add esp, -10

004B7226    B8 A86F4B00     mov eax, Pey.004B6FA8

004B722B    E8 6CF4F4FF     call Pey.0040669C

004B7230    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7235    8B00            mov eax, dword ptr ds:[eax]

004B7237    E8 C48CFCFF     call Pey.0047FF00

004B723C    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7241    8B00            mov eax, dword ptr ds:[eax]

004B7243    BA 80724B00     mov edx, Pey.004B7280

004B7248    E8 AB88FCFF     call Pey.0047FAF8

004B724D    8B0D F4A14B00   mov ecx, dword ptr ds:[4BA1F4]           ; Pey.004BBCAC

004B7253    A1 C4A04B00     mov eax, dword ptr ds:[4BA0C4]

004B7258    8B00            mov eax, dword ptr ds:[eax]

004B725A    8B15 48E44A00   mov edx, dword ptr ds:[4AE448]           ; Pey.004AE494

004B7260    E8 B38CFCFF     call Pey.0047FF18

........................................................................

修复IAT必须关闭OD单独开加壳程序修复,不然ImportREC停止响应,最后用ImportREC Oep填B7220,跟踪等级三轻松修复,无法运行!?
寻找出错原因。

004F01F8   /78 01           js short dumped_.004F01FB

004F01FA   |F8              clc

004F01FB   \BF 58D5CC8F     mov edi, 8FCCD558

004F0200    8B45 00         mov eax, dword ptr ss:[ebp]

004F0203    7C 03           jl short dumped_.004F0208

004F0205    7D 01           jge short dumped_.004F0208

004F0207    E9 E9040000     jmp dumped_.004F06F5

004F020C    004E 66         add byte ptr ds:[esi+66], cl

004F020F    1BD9            sbb ebx, ecx

004F0211    33C2            xor eax, edx

004F0213    50              push eax

004F0214    E8 01000000     call dumped_.004F021A //发现这个Call可能是新版Acprotect的解码技术,和完美卸载Xp里面的一样的,这一段修复一直没搞定,比原先的Jmp xxxxx  那种语句难多了。

004F0219    EA 58587B05 668>jmp far 8166:057B5858

不好意思,文章没写完,卡住了。

今天看到Fly大侠的文章,呵呵,明白是什么一会事。

其实本版本Acprotect嵌有Oep处代码检验程序,发现Oep处代码被替换,立即拒绝解码,你失去了关键的代码当然程序无法运行,还要承认N次错误确定按钮。

广告位