脱壳基础知识入门之用内存断点找OEP
2007-01-15 16:44:16 来源:WEB开发网核心提示: vi.下面来讨论一下内存断点的局限性问题,是不是什么壳都可以用内存中断啊?不是每个都可以的,脱壳基础知识入门之用内存断点找OEP(7),一些像UPX和ASPACK就不行,为什么?呵呵~follewme!情况1.我们来看看UPX的壳首先,你可能说,我可以在0040ED6F61popad//这
vi.下面来讨论一下内存断点的局限性问题。
是不是什么壳都可以用内存中断啊?
不是每个都可以的,一些像UPX和ASPACK就不行。
为什么?
呵呵~follewme!
情况1.
我们来看看UPX的壳
首先,他的壳代码在UPX1段。
这里是他要跳到OEP的地方
0040ED4F /7711 jashortNOTEPAD_.0040ED62
0040ED51 |01C3 addebx,eax
0040ED53 |8B03 moveax,dwordptrds:[ebx]
0040ED55 |86C4 xchgah,al
0040ED57 |C1C010 roleax,10 //在解码
0040ED5A |86C4 xchgah,al
0040ED5C |01F0 addeax,esi
0040ED5E |8903 movdwordptrds:[ebx],eax
0040ED60 ^|EBE2 jmpshortNOTEPAD_.0040ED44
0040ED62 240F andal,0F
0040ED64 C1E010 shleax,10
0040ED67 66:8B07 movax,wordptrds:[edi]
0040ED6A 83C702 addedi,2
0040ED6D ^EBE2 jmpshortNOTEPAD_.0040ED51 //回跳解码
0040ED6F 61 popad
0040ED70 -E95723FFFF jmpNOTEPAD_.004010CC //跳到OEP
我们看到他在对code段解压完毕的时候马上就JMP到OEP去了,那么我们根本就来不及使用内存断点的办法。
你可能说,我可以在
0040ED6F 61 popad//这一句下段然后使用啊
呵呵~~当然可以,不过你把花在下内存断点的时间,多按下几次F8不更好?!
更多精彩
赞助商链接