挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击
→入驻S9企业发卡网各种全黑号辅助群:475351077 ██【我要租此广告位】██.
.. .
查看: 7626|回复: 23
打印 上一主题 下一主题

[图文教程] CALL的概念篇:堆栈的平衡(一)

[复制链接]

4万

积分

621

主题

168

听众
已帮网友解决4 个问题
好评
1010
贡献
47478
海币
3768
交易币
2000

最佳新人活跃会员开荒者原创大师推广达人沙发王侦察队队长宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老在线王源码大师终身成就杰出贡献机器王评分大师回帖大师CM制造者CM杀手艺术大师签到达人土豪知识库

QQ
跳转到指定楼层
楼主
发表于 2014-5-24 11:16:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


*堆栈平衡 是一个很重要的东西,其实说白了也没有什么,只要自己反汇编看看执行过程中的变化 便能了解的一清二楚.
* 这章需要知道一些简单的汇编知识 ,比如说 EIP的作用 ESP的概念 这些我就不详细多说了,想要学习的请看 王爽老师的 汇编语言 非常经典的一本书

此次例子以武易打坐CALL为例
===========================开始分析============================

这个就是打坐CALL的原型 和 代码 当然了 这个寄存器的值是动态的,因为是做堆栈平衡的所以我们没有找基址,可能跟你的值会不一样.

这里是 打坐CALL的内部

我们来用 加了堆栈平衡 和没加堆栈平衡的 CALL分别调用看看 他们的堆栈 和寄存器的变化



这里是CALL内部中 头部 和尾部的 变化, 我们发现并没有任何的不同,看来 堆栈平衡跟CALL内部无关


这里不一样了, 我们发现, 有堆栈平衡的代码 里 多了一行 add esp,4
而执行到 RETN 时候 栈顶 也各不相同

当CPU 执行完 add esp,4 后就把栈顶的第一行挤出 堆栈.
而没有处理过堆栈平衡的 则跳转到了 9EC8950 这里

我们来看看这个正确指向代码地址的值是从哪里来的



图中9EC8818 是我们代码中PUSH进去的值
80f000a 则是 跳出这个CALL返回时候 所跳转的代码地址 当执行retn的时候 EIP指向这里
7C80B729 则是 跳出去以后 执行retn 时候 所指向的 代码地址.

如果 我们把 第一个堆栈 80f000a 换成 7c80b729 会如何?


呵呵 调用成功 也没有出错, 这是因为 在最后 执行retn的时候 我们帮他指向了 正确的 地址,当然了 也不是所有游戏都可以这样弄的,有些游戏压入的数值不是随意便可以CALL成功的.


好了 从上面的例子 可以看出 堆栈平衡其实就是 帮助 EIP 指向 正确的 地址, 如果你压入一个0 而不做堆栈平衡处理 那么 执行完后 EIP便会 执行 0 这个代码地址.说白了,堆栈平衡处理就是把压入的数值的空间去删去.因为ESP永远指向栈顶,RETN永远执行跳转到 栈顶的地址.



联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:笑傲江湖选怪CALL分析过程
下一篇:手把手教你CE+OD找天龙八部游戏基址
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】和【海币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

2

积分

1

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
718
交易币
0
沙发
发表于 2014-7-2 13:26:27 | 只看该作者
学习了,谢谢分享、、、

0

积分

0

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
0
海币
599
交易币
0
板凳
发表于 2014-7-13 07:02:09 | 只看该作者
帮你顶下哈!!

18

积分

9

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
9
海币
736
交易币
0
地板
发表于 2014-7-14 18:58:29 | 只看该作者
我常来...支持 海论坛

0

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
0
海币
-3
交易币
0
5#
发表于 2014-7-15 22:46:23 | 只看该作者
前排支持一下
3正式会员
184/300

184

积分

118

主题

5

听众
已帮网友解决0 个问题
好评
0
贡献
66
海币
2728
交易币
0
6#
发表于 2014-7-17 10:38:05 | 只看该作者
看看..感谢楼主

18

积分

13

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
5
海币
1817
交易币
0
7#
发表于 2014-7-19 12:17:20 | 只看该作者
海论坛,我支持你!

2

积分

1

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
839
交易币
0
8#
发表于 2014-7-20 20:41:01 | 只看该作者
海论坛,我支持你!
3正式会员
118/300

118

积分

43

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
75
海币
3556
交易币
0
9#
发表于 2014-12-26 15:13:24 | 只看该作者
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
3正式会员
128/300

128

积分

51

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
77
海币
6699
交易币
0
10#
发表于 2014-12-26 15:17:58 | 只看该作者
无论是不是沙发都得回复下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-18 18:57 , Processed in 0.509925 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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