标题:一个BYTE引发的疑问
只看楼主
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
结帖率:100%
 问题点数:0 回复次数:4 
一个BYTE引发的疑问
蛋疼  发帖砸不成功呢  不允许上传附件为0....  俺就传了几张图片呀

------------------------------------------------------------------------------
首先编写代码如下

程序挂掉,运行的结果好像也不是我预期的值--于是OD载入

发现多了一个push 0,于是单步走

在走发现神奇了,栈好像不是模4地址了

于是感觉这不科学啊

VC6.0 编写C代码如下

反汇编查看



于是感觉ml的处理方式好像不科学啊
搜索更多相关主题的帖子: 疑问 
2012-11-04 02:49
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
得分:0 
额 有人看电影把网速全部占用了  叫他限速了下  于是上传成功了
---------------------------------------------------------------------

于是小小的修改了一下代码把SBYTE全部修改为BYTE

程序好像没有挂了
于是在OD载入

发现又多了一个push 一共3个push0
于是猜测,是否是因为BYTE 才多产生了一个push 0
于是在小小的把BYTE 全部修改为SBYTE

好像程序又没有挂
于是在OD载入

于是发现好像没有产生多余的push 0了


于是疑问产生了  BYTE类型压参时为何要push 0一下呢
???????????????????????????????????????????????
期待高人的解答





我的头像就是我的女神 可惜我的女神已经死了 所以我的心也死了
2012-11-04 02:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
可能是bug罢 API压栈都是压的32位数 所以正常情况下没有这个问题 可能宏在压非32位的时候有bug
2012-11-04 10:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 
表示学习 去研究下

梅尚程荀
马谭杨奚







                                                       
2012-11-04 10:52
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
得分:0 
以下是引用zklhp在2012-11-4 10:26:47的发言:

可能是bug罢 API压栈都是压的32位数 所以正常情况下没有这个问题 可能宏在压非32位的时候有bug
在zk大大的指点下  俺于是测试 有无宏的情况


咿呀好像还真不一样啊  难道真的是有无宏的情况么?
于是在进行测试

于是发现不是宏引起的  
调用约定一样 参数类型一样 咋生成的代码就不一样呢?
突然恍然大悟   printf是变长参数
于是  把_test也修改成变长参数   于是 一样了

我的头像就是我的女神 可惜我的女神已经死了 所以我的心也死了
2012-11-04 12:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385828-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015238 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved