首页
社区
课程
招聘
[结帖]
发表于: 2023-1-30 16:51 6201

[结帖]

2023-1-30 16:51
6201

为何?

外部exe可能在任一位置调用dll中的导出函数, 如果dll导出函数使用了寄存器, 外部exe有可能出错才对. 但事实是没有问题, 如何解释?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-1-31 15:24 被PEDIY编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 1144
活跃值: (4222)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
2
你很幸运
2023-1-30 16:58
0
雪    币: 1440
活跃值: (1350)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
3

为什么要保存所有寄存器?这不是调用约定吗,32位的被调函数只需要保存esp、ebp; ebx、esi、edi,其他调用者自己保存

最后于 2023-1-30 17:04 被Black貓①呺编辑 ,原因:
2023-1-30 17:02
1
雪    币: 1825
活跃值: (5354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Black貓①呺 为什么要保存所有寄存器?这不是调用约定吗,32位的被调函数只需要保存esp、ebp; ebx、esi、edi,其他调用者自己保存

在点的回答. 不过vs编译的好像只push了ebx, 没有edi和esi, 又是怎么回事

最后于 2023-1-30 18:51 被PEDIY编辑 ,原因:
2023-1-30 17:09
1
雪    币: 1440
活跃值: (1350)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
5
PEDIY Black貓①呺 为什么要保存所有寄存器?这不是调用约定吗,32位的被调函数只需要保存esp、ebp; ebx、esi、edi,其他调用者自己保存 ...
当函数比较简单,没用到这两个寄存器的时候,就不需要保存
2023-1-30 17:16
1
游客
登录 | 注册 方可回帖
返回
//