|
基础脱壳教程一:手脱UPX壳
方法1:单步跟踪
方法2:ESP定律法
dd XXXXX
hr XXXXX
方法3:2次内存镜像法
方法4:一步直达法
基础脱壳教程2:手脱ASPACK壳
ASPack 2.12 -> Alexey Solodovnikov
工具:PEID和OD
6种方法脱
方法1:单步跟踪
方法2:ESP定律
方法3:一步直达
方法4:2次内存镜像
方法5:模拟跟踪
tc eip<xxxxxx
方法6:SFX
基础脱壳教程3:手脱NSPACK(北斗)
at GetVersion
基础脱壳教程4:手脱FSG壳
FSG 2.0 -> bart/xt
重点为修复
手动、查找IAT
00425000 77DA6BF0 ADVAPI32.RegCloseKey
00425280 7C838DE8 kernel32.LCMapStringA
基础脱壳教程5:手脱PECompact2.X的壳
PECompact 2.x -> Jeremy Collake
1。单步
2。ESP定律
3。BP VirtualFree
SHIFT+F9,取消断点
ALT+F9
查找 push 8000(特征码)
运行到这
单步跟
4。BP VirtualFree
两次SHIFT+F9
中断后取消断点,Alt+F9返回
单步走。
5.0040A86D > B8 74DE4500 mov eax,qqspirit.0045DE74
bp 0045de74
045DE74 B8 F9CB45F0 mov eax,F045CBF9
0045DE79 8D88 9E120010 lea ecx,dword ptr ds:[eax+1000129E]
0045DE7F 8941 01 mov dword ptr ds:[ecx+1],eax
0045DE82 8B5424 04 mov edx,dword ptr ss:[esp+4]
0045DE86 8B52 0C mov edx,dword ptr ds:[edx+C]
0045DE89 C602 E9 mov byte ptr ds:[edx],0E9
0045DE8C 83C2 05 add edx,5
0045DE8F 2BCA sub ecx,edx
0045DE91 894A FC mov dword ptr ds:[edx-4],ecx
0045DE94 33C0 xor eax,eax
0045DE96 C3 retn
0045DE97 B8 78563412 mov eax,12345678//下断
6。bp VirtualAlloc SHIFT+F9运行
取消断点
ALT+F9
向下拉,看到JMP。运行到这
7.最后一次异常法;
取消所有异常。
2次跑飞。
找SE句柄
转到SE xxxx处
045DE74 B8 F9CB45F0 mov eax,F045CBF9
0045DE79 8D88 9E120010 lea ecx,dword ptr ds:[eax+1000129E]
0045DE7F 8941 01 mov dword ptr ds:[ecx+1],eax
0045DE82 8B5424 04 mov edx,dword ptr ss:[esp+4]
0045DE86 8B52 0C mov edx,dword ptr ds:[edx+C]
0045DE89 C602 E9 mov byte ptr ds:[edx],0E9
0045DE8C 83C2 05 add edx,5
0045DE8F 2BCA sub ecx,edx
0045DE91 894A FC mov dword ptr ds:[edx-4],ecx
0045DE94 33C0 xor eax,eax
0045DE96 C3 retn
0045DE97 B8 78563412 mov eax,12345678//下断
8。两次内存
9。at GetVersion基础脱壳教程6:手脱EZIP 壳
1。单步
2。ESP定律
有时候可以用重建PE的方法。
基础脱壳教程7:手脱tElock 0.98b1壳
1。最后一次异常法
2.模拟跟踪
3。两次内存镜像
重点还是修复
等级3跟踪。
基础脱壳教程8:手脱exe32pack壳
1。ESP定律
2。下断:BP IsDebuggerPresent
运行,取消断点
ALT+F9
计算ss+edi
转到OEP!
|
|