吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 570|回复: 4
收起左侧

[已解决] esp定律

[复制链接]
y03051022 发表于 2024-3-11 17:58
最近在看52的培训视频,在脱壳这节课中说使用esp定律,这个esp定律的原理是什么啊,求助大佬。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2024-3-11 18:44
冥界3大法王 发表于 2024-3-11 18:13
@y03051022
原理就是
入栈的时候抓一张截图。。。

你这不是原理,是操作步骤…

大概的原理是壳代码在启动的时候需要用到堆栈,用完之后需要将 esp 还原到执行壳代码之前的状态。

例如简单的 upx 压缩壳,通常会在入口处使用 pushad 把所有寄存器入栈,然后退出壳代码的时候使用 pop/popad 出栈。为了平衡堆栈而出栈时会向 esp 指向的位置的内容写出数据。

esp 定律就是在第一个入栈行为之后对 esp 地址处的数据下写入断点,等壳为了恢复正常运行而平衡堆栈时触发。断点触发后没多远的地方通常就是原始 OEP 了。

注意该规则不一定适用现代的加密壳。
 楼主| y03051022 发表于 2024-3-11 19:16
理解了,谢谢大佬们,就好比vc编写的程序一样 入口是main函数 然后在main里面调用其他函数,当程序运行完成后还是需要平掉main函数的堆栈的,壳代码也是这样的 运行程序先到壳的入口函数里,然后在这个入口函数里做各种操作,当操作完成后也就是解密完成了,也是需要平掉入口的堆栈的, 然后跳转到真实的OEP, 只需要在第一个入栈后加断点,当平栈的时候也就触发了这个断点,这个断点附近就会有跳转到真实OEP的代码
冥界3大法王 发表于 2024-3-11 18:13
@y03051022
原理就是
入栈的时候抓一张截图。。。
出栈的时候再抓一张截图。。。
两者对比,顺序相反内容相同
具体看视频演示https://www.bilibili.com/video/B ... arch-card.all.click

https://www.bilibili.com/video/B ... d3817c4fffd2f594979

点评

你这不是原理,是操作步骤… 大概的原理是壳代码在启动的时候需要用到堆栈,用完之后需要将 esp 还原到执行壳代码之前的状态。 例如简单的 upx 压缩壳,通常会在入口处使用 pushad 把所有寄存器入栈,然后退出  详情 回复 发表于 2024-3-11 18:44
雪很冷 发表于 2024-3-12 00:06
本帖最后由 雪很冷 于 2024-3-12 00:12 编辑

本来还有点懵懂懂,现在彻底懵懵懵了。哈哈。有些时候要追根求源确实得有深厚的基础才行
理解不了原理,但是在调试器中会操作,特别是X64,寄存器窗口右键菜单下,自带一键设置特别方便。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 01:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表