esp定律
最近在看52的培训视频,在脱壳这节课中说使用esp定律,这个esp定律的原理是什么啊,求助大佬。 冥界3大法王 发表于 2024-3-11 18:13@y03051022
原理就是
入栈的时候抓一张截图。。。
你这不是原理,是操作步骤…
大概的原理是壳代码在启动的时候需要用到堆栈,用完之后需要将 esp 还原到执行壳代码之前的状态。
例如简单的 upx 压缩壳,通常会在入口处使用 pushad 把所有寄存器入栈,然后退出壳代码的时候使用 pop/popad 出栈。为了平衡堆栈而出栈时会向 esp 指向的位置的内容写出数据。
esp 定律就是在第一个入栈行为之后对 esp 地址处的数据下写入断点,等壳为了恢复正常运行而平衡堆栈时触发。断点触发后没多远的地方通常就是原始 OEP 了。
注意该规则不一定适用现代的加密壳。 理解了,谢谢大佬们,就好比vc编写的程序一样 入口是main函数 然后在main里面调用其他函数,当程序运行完成后还是需要平掉main函数的堆栈的,壳代码也是这样的 运行程序先到壳的入口函数里,然后在这个入口函数里做各种操作,当操作完成后也就是解密完成了,也是需要平掉入口的堆栈的, 然后跳转到真实的OEP, 只需要在第一个入栈后加断点,当平栈的时候也就触发了这个断点,这个断点附近就会有跳转到真实OEP的代码 @y03051022
原理就是
入栈的时候抓一张截图。。。
出栈的时候再抓一张截图。。。
两者对比,顺序相反内容相同
具体看视频演示https://www.bilibili.com/video/BV1Rs411c7HG/?spm_id_from=333.337.search-card.all.click
https://www.bilibili.com/video/BV1us411P7yo/?spm_id_from=333.337.search-card.all.click&vd_source=da796c549de2bd3817c4fffd2f594979 本帖最后由 雪很冷 于 2024-3-12 00:12 编辑
本来还有点懵懂懂,现在彻底懵懵懵了。哈哈。有些时候要追根求源确实得有深厚的基础才行
理解不了原理,但是在调试器中会操作,特别是X64,寄存器窗口右键菜单下,自带一键设置特别方便。
页:
[1]