前几天写壳,用到了这玩意。ESP定律是脱壳的主流手段。
主要原理是在入栈操作后对esp下访问断点(内存断点/硬件断点)。
根据上面原理,人为的访问esp内存地址就能让调试器断下来,我称之为坑。 多设置几个坑,加一个循环嵌套,Cracker就会失去耐心。
坑:
mov eax,dword ptr ss:[esp] 或者类似指令。
下面是测试数据:
[Asm] 纯文本查看 复制代码 004062B0 > 60 pushad
004062B1 90 nop ; hr esp 下断点
004062B2 90 nop
004062B3 90 nop
004062B4 90 nop
004062B5 8B0424 mov eax,dword ptr ss:[esp]
004062B8 90 nop ;会在这里停下
004062B9 90 nop
004062BA 8B0424 mov eax,dword ptr ss:[esp]
004062BD 90 nop ;会在这里停下
004062BE 90 nop
004062BF 90 nop
004062C0 90 nop
004062C1 90 nop
004062C2 90 nop
004062C3 90 nop
004062C4 90 nop
004062C5 CC int3
|