脱壳方法中,ESP定律的原理是什么?
答:狭义 ESP 定律的原理是堆栈平衡,壳在解压或解密前要先使用 pushad
指令保存现场环境,结束后再使用 popad
指令恢复现场,之后对栈进行操作的时候会触发断点,这时就跳过了一些不需要单步跟踪的指令,更加接近 OEP。
广义 ESP 定律:根据经验,加壳程序在到达 OEP 时的 ESP 寄存器的值通常为0012FFC4
,且 OEP 的第一条指令往往是压栈,所以只要在 0012FFC0
下硬件写入断点,就能停在 OEP 的第二句处。