好友
阅读权限10
听众
最后登录1970-1-1
|
【文章标题】: SVKP 1.43另类脱壳
【文章作者】: 狼魂
【作者主页】: http://www.wolf-soul.cn
【作者QQ号】: 859857556
【软件名称】: UnPackMe.SVK1.43.C
【下载地址】: 自己搜索下载
【作者声明】: 练习笔记,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
SVKP 1.43另类脱壳练习笔记。
首先PEID查壳 SVKP 1.3x -> Pavol Cerven 其实是1.43的
一、OD载入,设置OD忽略所有异常,在SFX项选择[跟踪真正入口处(不一定准确)】重新载入。
程序会断在 00427207 . E8 94210000 call UnPackMe.004293A0
记下地址。
00427203 90 nop
00427204 90 nop
00427205 90 nop
00427206 90 nop
00427207 . E8 94210000 call UnPackMe.004293A0 ; SFX 代码真正入口点 //段在这里伪OEP
0042720C . 85C0 test eax,eax
0042720E . 75 0A jnz short UnPackMe.0042721A
二、重新设置OD,取消忽略内存异常,在SFX项设回原来的第一个选择框。
载入OD,F8 然后用ESP定律,下硬件访问Dword断点 Shift+F9四次到达最后一次异常。
066ADC09 CD 01 int 1 //最后一次异常
066ADC0B E8 01000000 call 066ADC11
066ADC10 - E9 83C4047C jmp 826FA098
066ADC15 03EB add ebp,ebx
066ADC17 039A 74FB648F add ebx,dword ptr ds:[edx+8F64FB74]
066ADC1D 05 00000000 add eax,0
AIT+M 在00400000处下 内存访问断点,shift+f9
066CE8D3 8A06 mov al,byte ptr ds:[esi] //断在这里
066CE8D5 46 inc esi
066CE8D6 47 inc edi
此时取消内存访问断点,继续Shift+F9
0012FC40 60 pushad //段在这里
0012FC41 E8 03000000 call 0012FC49
0012FC46 D2EB shr bl,cl
0012FC48 0A58 EB or bl,byte ptr ds:[eax-15]
0012FC4B 0148 40 add dword ptr ds:[eax+40],ecx
此时取消硬件断点 ,跳到00427207,F2下断
Ctrl+F11跟踪步入,然后RUN跟踪
Run trace, 选定行
返回=888.
线程=
地址=0012FC53
=popad
修改后的寄存器=EAX=067BE159, ESP=0012FFC4
记下popad寄存器EAX=067BE159
然后打开OllyDbg PED umper插件单击【GetMAP】在006790000处新建区段wolf,在0067D0000处新建区段soul,返回,
在上面的三个选项打钩,单击【GetEIP OEP】获取OEP :00027207,然后点击【Dump]脱壳。
三、 修复
用等级1修复无效指针,还显示7个无效,不理他直接修复。测试无法运行。
四、此时用到我们记下的EAX=067BE159减00400000=63BE159,用LordPE改入口为63BE159,重建一下PE。OK运行正常。
--------------------------------------------------------------------------------
【经验总结】
1、这个壳载入OD会报错,点去定即可。
2、要添加 C0000005 (ACCESS VIOLATION) 异常。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于狼魂【wolfsoul】, 转载请注明作者并保持文章的完整, 谢谢!
2009年02月17日 15:47:38 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|