脱壳基础知识入门之用内存断点找OEP
2007-01-15 16:44:16 来源:WEB开发网核心提示: F9以后停在这里,继续对code下内存访问断点,脱壳基础知识入门之用内存断点找OEP(6),看看左下角还在解码,哎~真是麻烦!003728E1/EB1Djmpshort00372900003728E3|25FFFFFF7Fandeax,7FFFFFFF003728E8|0385830600
F9以后停在这里,继续对code下内存访问断点。
看看左下角还在解码,哎~真是麻烦!
003728E1 /EB1D jmpshort00372900
003728E3 |25FFFFFF7F andeax,7FFFFFFF
003728E8 |038583060000 addeax,dwordptrss:[ebp+683]
003728EE |2B858F060000 subeax,dwordptrss:[ebp+68F]
003728F4 |8BDE movebx,esi
003728F6 |2BD8 subebx,eax
003728F8 |8958FC movdwordptrds:[eax-4],ebx //停在这里
003728FB |83C708 addedi,8
003728FE ^|EBDB jmpshort003728DB
00372900 64:FF3530000000 pushdwordptrfs:[30] //清除内存断点以后到这里下断,F9
又是一段解码的代码,再次使用上面的办法手动跳出去。
现在继续对code段下内存访问断点!!F9以后到达这里。
004010CC FFD7 calledi ;unpackme.004010CE //OEP哦
004010CE 58 popeax
004010CF 83EC44 subesp,44
004010D2 56 pushesi
004010D3 90 nop
004010D4 E8B518F7FF call0037298E
004010D9 8BF0 movesi,eax
呵呵~虽然不是我们熟悉的OEP,但是地址是没错了,况且根据我们的步骤,我可以很肯定的说这是code段的第一次“执行”中断!
所以这就是OEP了。
总结一下:当我们在寻找OEP的时候,要多次对code下断“赌”一“赌”他解压完毕,如果不是就对别的段试试~如果程序跑飞了,那就没办法了,重来呗~其实说起来要赌的是:当data段,idata段,rsrc段摆在你的面前,你会好好“珍惜”那个段,不过还好上天还会给我们从来一次的机会(ctrl+F2^_^),那么我们会对那个不会跑飞的段说3个字----“先断你”如果非要在上面加一个次数,我希望是“一次内存断点就好了”
更多精彩
赞助商链接