首页
社区
课程
招聘
各位大佬,请教下X64显示缺几个参数
2024-2-23 18:50 1510

各位大佬,请教下X64显示缺几个参数

2024-2-23 18:50
1510

X64显示缺几个参数,是什么情况昵?
只有1、2、5、6、7,中间参数去哪里了?


阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 22208
活跃值: (3702)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangyalei 2024-2-23 23:07
2
0
这个只能参考一下,在运行过程中 EBP 有可能会变的
x64dbg 把 [EBP+8] 一律认为是参数 1,至于是不是你得根据 EBP自己判断
还有调用约定不同也会影响参数的位置的
雪    币: 22208
活跃值: (3702)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangyalei 2024-2-23 23:18
3
0
而且 x64dbg 也不判断参数的数量,[EBP+8] 以上的都标注为参数,[EBP-4] 以下的都标注为局部变量
雪    币: 163
活跃值: (484)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haseex 2024-2-24 00:35
4
0



谢谢指教。好像是7个参数,但是调用call的时候报错。

雪    币: 22208
活跃值: (3702)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangyalei 2024-2-24 12:21
5
1
haseex 谢谢指教。好像是7个参数,但是调用call的时候报错。
从你这几张图看不出之间的逻辑关系,但从单张图来看也看不出有7个参数
第一张的 ret 后面没有数字,有可能是调用者平栈,也有可能没有参数或只用了寄存器传参
第二张说明不了任何问题
第三张 add esp,1c 前的 call 只 push 了一个参数,这里应该是局部变量的堆栈平衡
雪    币: 163
活跃值: (484)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haseex 2024-2-24 12:34
6
0
huangyalei 从你这几张图看不出之间的逻辑关系,但从单张图来看也看不出有7个参数 第一张的 ret 后面没有数字,有可能是调用者平栈,也有可能没有参数或只用了寄存器传参 第二张说明不了任何问题 第三张 add ...

感谢指导



我在hook这个call的时候,如果我的程序不带任何参数,hook成功,并且不报错。调用原call的时候,如果带参数,也报错。不带参数能正常调用,但是导致call返回失败,我想应该是用了寄存器传参数。这方面没有找到相关资料,有什么建议吗?

最后于 2024-2-24 12:35 被haseex编辑 ,原因:
雪    币: 22208
活跃值: (3702)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangyalei 2024-2-24 12:51
7
0
haseex huangyalei 从你这几张图看不出之间的逻辑关系,但从单张图来看也看不出有7个参数 第一张的 ret 后面没有数字,有可能是调用者 ...
跟进 call 里面看呗,失败应该会有异常吧,调试器拦截异常指令,再往上回溯看看是什么导致异常
雪    币: 163
活跃值: (484)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
haseex 2024-2-24 13:25
8
0
huangyalei 跟进 call 里面看呗,失败应该会有异常吧,调试器拦截异常指令,再往上回溯看看是什么导致异常
谢谢大佬,解决了。原因是通过寄存器传参,正常调用的话直接报错。
游客
登录 | 注册 方可回帖
返回