好友
阅读权限20
听众
最后登录1970-1-1
|
声明:
1.只为纪录自己成长历程,高手勿喷
2.您的热心是新手持续发帖的动力
个人认为这个壳对于新手有那么一点点难度,所以用单步和ESP都跑一下,我觉得单步是最最基础的,所以一定要掌握
一、单步
1.PEID查壳
PECompact v2.xx (16 ms)
2.载入OD,除了以下标注的几个位置外,其他的都使用F8
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 7 | 0040A86D > B8 74DE4500 mov eax ,qqspirit.0045DE74
0040A872 50 push eax
0040A873 64:FF35 0000000> push dword ptr fs :[0]
0040A87A 64:8925 0000000> mov dword ptr fs :[0], esp
0040A881 33C0 xor eax , eax
0040A883 8908 mov dword ptr ds :[ eax ], ecx
0040A885 50 push eax
|
位置1:
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 7 | 778D711D 6A 00 push 0x0
778D711F 51 push ecx
778D7120 E8 2BE5FFFF call ntdll.ZwContinue
778D7125 EB 0B jmp short ntdll.778D7132
778D7127 5B pop ebx
778D7128 59 pop ecx
778D7129 6A 00 push 0x0
|
位置2:
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 | 778D5650 > B8 3C000000 mov eax ,0x3C
778D5655 BA 0003FE7F mov edx ,0x7FFE0300
778D565A FF12 call dword ptr ds :[ edx ]
778D565C C2 0800 retn 0x8
778D565F 90 nop
778D5660 > B8 3D000000 mov eax ,0x3D
|
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 | 778D71B0 > 8BD4 mov edx , esp
778D71B2 0F34 sysenter
778D71B4 > C3 retn
778D71B5 8DA424 00000000 lea esp , dword ptr ss :[ esp ]
778D71BC 8D6424 00 lea esp , dword ptr ss :[ esp ]
778D71C0 > 8D5424 08 lea edx , dword ptr ss :[ esp +0x8]
|
3.找到了指向OEP的跳转
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 | 0045DF34 5B pop ebx
0045DF35 5D pop ebp
0045DF36 - FFE0 jmp eax
0045DF38 6D ins dword ptr es :[ edi ], dx
0045DF39 A8 40 test al ,0x40
0045DF3B 0000 add byte ptr ds :[ eax ], al
|
4.来到OEP,脱壳吧
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 7 8 | 0040A86D > 55 push ebp
0040A86E 8BEC mov ebp , esp
0040A870 6A FF push -0x1
0040A872 68 78794200 push qqspirit.00427978
0040A877 68 F4E14000 push qqspirit.0040E1F4
0040A87C 64:A1 00000000 mov eax , dword ptr fs :[0]
0040A882 50 push eax
0040A883 64:8925 0000000> mov dword ptr fs :[0], esp
|
5.运行查壳
运行OK,查壳:Microsoft Visual C++ v6.0
二、ESP定律
1.载入OD,看到两个push入栈,下一行ESP定律下硬件访问断点然后shift+F9运行一次
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 | 0040A86D > B8 74DE4500 mov eax ,qqspirit.0045DE74
0040A872 50 push eax
0040A873 64:FF35 0000000> push dword ptr fs :[0]
0040A87A 64:8925 0000000> mov dword ptr fs :[0], esp
0040A881 33C0 xor eax , eax
0040A883 8908 mov dword ptr ds :[ eax ], ecx
|
2.来到ESP的落脚点,单步F8跟下去就能到OEP了
[Asm] 纯文本查看 复制代码 1 2 3 4 5 | 0045DEA3 83C4 04 add esp ,0x4
0045DEA6 55 push ebp
0045DEA7 53 push ebx
0045DEA8 51 push ecx
0045DEA9 57 push edi
|
3.来到关键跳,这就是指向OEP的跳转
[Asm] 纯文本查看 复制代码 1 2 3 4 5 | 0045DF34 5B pop ebx
0045DF35 5D pop ebp
0045DF36 - FFE0 jmp eax
0045DF38 6D ins dword ptr es :[ edi ], dx
0045DF39 A8 40 test al ,0x40
|
4.来到OEP,脱壳、运行、查壳
[Asm] 纯文本查看 复制代码 1 2 3 4 5 6 7 8 9 | 0040A86D > 55 push ebp
0040A86E 8BEC mov ebp , esp
0040A870 6A FF push -0x1
0040A872 68 78794200 push qqspirit.00427978
0040A877 68 F4E14000 push qqspirit.0040E1F4
0040A87C 64:A1 00000000 mov eax , dword ptr fs :[0]
0040A882 50 push eax
0040A883 64:8925 0000000> mov dword ptr fs :[0], esp
0040A88A 83EC 58 sub esp ,0x58
|
|
免费评分
-
查看全部评分
|