首页
社区
课程
招聘
5
[IDA使用技巧]#164: 我的代码呢?函数参数丢失的情况
发表于: 2023-12-6 17:31 8776

[IDA使用技巧]#164: 我的代码呢?函数参数丢失的情况

2023-12-6 17:31
8776

翻译:梦幻的彼岸

原文地址:https://hex-rays.com/blog/igors-tip-of-the-week-164-wheres-my-code-the-case-of-missing-function-arguments/



让我们来看看 x86 Windows 二进制文件的反编译片段:

使用相同的参数调用了相同的函数两次,最后一次似乎没有使用 GetComputerNameExW 调用的结果。

通过切换到反汇编,我们可以看到在每次调用之前都用字符串地址初始化了eax:


但是反编译器并不考虑它,因为在 x86 系统中,栈是传递参数的常用方式,而 eax 通常只是一个临时的寄存器。

一种方法是编辑 sub_10006FC7 的原型,使用 __usercall调用约定,然后手动将 eax 添加到参数中。但当函数位于同一个二进制文件中时,通常更简单的做法是直接进入函数内部并反编译,这样反编译器就能看到函数在初始化前确实使用了 eax,从而将其添加到参数列表中:


[招生]系统0day安全-IOT设备漏洞挖掘(第6期)!

最后于 2023-12-6 17:35 被梦幻的彼岸编辑 ,原因:
收藏
免费 5
支持
分享
赞赏记录
参与人
雪币
留言
时间
sky东
为你点赞~
2024-3-14 16:33
slcn
为你点赞~
2024-3-11 08:00
PLEBFE
为你点赞~
2024-1-3 04:28
York Waugh
为你点赞~
2023-12-26 22:17
704088
为你点赞~
2023-12-6 22:09
最新回复 (1)
雪    币: 1238
活跃值: (1805)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好文章,最新写plt 函数的 重命名还原也是这样搞的,但是有个问题就是,我想通过 python api 直接手动指定类型  这个楼主有研究么?
2023-12-7 18:00
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册