首页
社区
课程
招聘
[原创]乾坤大挪移VprotectDemo.2.0.9脱壳之处理antidump
发表于: 2011-10-14 13:01 13200

[原创]乾坤大挪移VprotectDemo.2.0.9脱壳之处理antidump

2011-10-14 13:01
13200

最近比较忙不会像上次放国庆那样有时间弄了,VprotectDemo.2.0.9的内存随机校检变得非常非常的强悍,不能像上次 Vprotect Demo 2.0.4 patch虚拟机那样简单了。
关于脱壳请参考:672K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4g2F1M7r3q4U0K9#2)9J5k6h3y4F1i4K6u0r3N6r3S2J5k6h3q4V1i4K6u0V1y4K6l9J5y4U0y4Q4x3X3b7I4i4K6u0V1x3g2)9J5k6h3S2@1L8h3H3`.的脚本。
如果程序SDK了代码并加了壳,脚本脱完壳修复好IAT之后,程序在本机和本机的虚拟机跑是没有任何问题的,一但换了机器程序就跑不起来了这可能就是VprotectDemo.2.0.9 anti dump,下面主要介绍如何绕过crc32内存校验并patch CPUID来处理anti dump的。

一.乾坤大挪移之patch CRCHandler绕过crc32的内存校验.
   1.LordPE载入修复好IAT后的程序,依次选择区段 -> 一般选择RawSize最大的区段可能就是虚拟机区段了,如果不确认区段请在程序中找,保存区段到磁盘。
           然后选择从磁盘中载入我们刚才保存的区段,这样子就在程序的区段后面添加了一个镜像区段。计算好一个偏移地址:AD5000  =  010C8000(新添加的镜像区段虚拟地址)  -005F3000(虚拟机起始虚拟地址),注意是VA不是RAV。
   2.OD载入修复好IAT后的程序,在反汇编窗口中打开有虚拟机代码的区段,查找所有命令:MOV     ESI,DWORD PTR DS:[EDI+30] ,确定之后弹出8个crc32 handler,这8个handler代码的功能一模一样,再往上拉不要超过retn指令找到MOV     EAX,DWORD PTR SS:[EBP] 就是CRC32Handler开始的地方了,分别找到所有的crc32 handler起始的位置。然后将剩下的7个起始位置修改为JMP到其中一个crc32 handler起始位置,这样做是好集中patch。
   3.在其中的crc32 handler开始位置修改代码如下:
二进制代码:

8B 45 00 05 DE C0 00 00 C1 C0 0E F7 D0 8B C8 8B 45 04 05 DE C0 00 00 C1 C0 0E F7 D0 05 00 70 CB
00 8B D0 8D 6D 08 B8 FF FF FF FF 53 56 8B 77 30 8A 1A 32 D8 81 E3 FF 00 00 00 8B 1C 9E C1 E8 08
33 C3 42 49 85 C9 75 E8 5E 5B F7 D0 F7 D5 8D 6D 04 F7 D5 F7 D0 C1 C8 0E 2D DE C0 00 00 89 45 00
C3
00931C87    8B45 00         MOV     EAX,DWORD PTR SS:[EBP]
00931C8A    05 DEC00000     ADD     EAX,0C0DE
00931C8F    C1C0 0E         ROL     EAX,0E
00931C92    F7D0            NOT     EAX
00931C94    8BC8            MOV     ECX,EAX
00931C96    8B45 04         MOV     EAX,DWORD PTR SS:[EBP+4]
00931C99    05 DEC00000     ADD     EAX,0C0DE
00931C9E    C1C0 0E         ROL     EAX,0E
00931CA1    F7D0            NOT     EAX
00931CA3    05 0070CB00     ADD     EAX,00CB7000     //此处修改为上面计算的偏移AD5000。
00931CA8    8BD0            MOV     EDX,EAX
00931CAA    8D6D 08         LEA     EBP,DWORD PTR SS:[EBP+8]
00931CAD    B8 FFFFFFFF     MOV     EAX,-1
00931CB2    53              PUSH    EBX
00931CB3    56              PUSH    ESI
00931CB4    8B77 30         MOV     ESI,DWORD PTR DS:[EDI+30]
00931CB7    8A1A            MOV     BL,BYTE PTR DS:[EDX]
00931CB9    32D8            XOR     BL,AL
00931CBB    81E3 FF000000   AND     EBX,0FF
00931CC1    8B1C9E          MOV     EBX,DWORD PTR DS:[ESI+EBX*4]
00931CC4    C1E8 08         SHR     EAX,8
00931CC7    33C3            XOR     EAX,EBX
00931CC9    42              INC     EDX
00931CCA    49              DEC     ECX
00931CCB    85C9            TEST    ECX,ECX
00931CCD  ^ 75 E8           JNZ     SHORT 00931CB7
00931CCF    5E              POP     ESI
00931CD0    5B              POP     EBX
00931CD1    F7D0            NOT     EAX
00931CD3    F7D5            NOT     EBP
00931CD5    8D6D 04         LEA     EBP,DWORD PTR SS:[EBP+4]
00931CD8    F7D5            NOT     EBP
00931CDA    F7D0            NOT     EAX
00931CDC    C1C8 0E         ROR     EAX,0E
00931CDF    2D DEC00000     SUB     EAX,0C0DE
00931CE4    8945 00         MOV     DWORD PTR SS:[EBP],EAX
00931CE7    C3              RETN

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 6
支持
分享
最新回复 (8)
雪    币: 2105
活跃值: (594)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
恩 LZ可以去出个FkVP
2011-10-14 13:45
0
雪    币: 114
活跃值: (180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
前排占位,看看视频
2011-10-14 14:27
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
我顶。。。。。。。呵呵
2011-10-15 08:34
0
雪    币: 3274
活跃值: (2348)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
5
VP的虚拟机handler解密出来的方式比较复杂,不好写。
2011-10-15 12:20
0
雪    币: 2325
活跃值: (1058)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
下载支持
2011-10-15 16:18
0
雪    币: 147
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
学习了 谢谢 顶 一下
2011-10-19 17:19
0
雪    币: 33
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这伎俩哪得来的
2011-11-4 23:16
0
雪    币: 13565
活跃值: (6228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

这也太强大了吧
2012-1-20 14:30
0
游客
登录 | 注册 方可回帖
返回