吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 272|回复: 0
收起左侧

[求助] 新人提问:使用ghidra进行反编译时,变量的赋值语句缺失,但是反汇编里有相关语句

[复制链接]
Firepunch 发表于 2025-1-10 12:34
刚接触反编译工具,使用ghidra对简单的C程序可重定向文件反编译时,变量的赋值语句有时会缺失,但是反汇编里有相关语句。请问为什么会有这种情况?什么样的代码或工具设置,工具可以正常提供完整的赋值语句呢?
问题源代码示例:
变量缺失源码.jpg
反汇编和反编译结果:
变量缺失反汇编.jpg
我做过以下尝试
1. main函数局部变量先声明再赋值
2.  main函数局部变量声明时直接初始化
3. main函数局部变量赋值后互相进行数值运算并赋值操作
4. main函数局部变量赋值后,针对该变量值使用assert断言
5. 在GUI界面Edit导航栏tool option菜单里修改反编译器的分析设置
这些尝试都不能使ghidra在生成的反编译代码里包含变量的赋值


因为我最终的需求是检测反编译代码里的assert是否通过,所以如果缺失变量值的话有些时候会对验证结果造成很大影响。
另外我还想问一下,使用ghidra的反编译器时,好像只提供函数的C伪代码,如果想要获取全局变量的数据结构和初始化值有什么办法吗?
最后,因为我要处理批量的数据,最终要使用的是ghidra的headless模式(命令行操作),该模式能完成我上面的需求吗?无头模式和GUI模式在功能覆盖上是否存在差异呢?(比如是否存在部分GUI上的功能,在使用命令行时没有相应的API无法实现)

一股脑问了很多新手问题,希望朋友们不要介意,烦请不吝赐教,感谢大家

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-25 14:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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