news 2026/4/18 6:24:41

用GHIDRA核查IDA生成的伪代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用GHIDRA核查IDA生成的伪代码

以下是IDA生成的一段伪代码:

for ( i = 1; i <= 3; ++i )

*(_BYTE *)(v5 - 8 + 4) = util_rnav__valide_caract(&a5[104 * i - 104]);

而且还有以下警告:

// 9C8A2F: variable 'v5' is possibly undefined

在以上循环中,v5没有变化,这很可疑,于是查看对应的汇编代码:

汇编

备注

.text:009C8A26 loc_9C8A26:

伪代码中的i对应esi,a5对应edi, v5对应ebx

.text:009C8A26 lea eax, [esi+esi*2]

3*i赋予eax

.text:009C8A29 lea eax, [esi+eax*4]

13*i赋予eax

.text:009C8A2C lea eax, [edi+eax*8]

a5+104* i赋予eax

.text:009C8A2F lea ebx, [eax-8]

a5+104* i-8赋予ebx

为何IDA忽视了a5+104* i?

.text:009C8A32 sub esp, 0Ch

.text:009C8A35 sub eax, 68h

104 * i - 104赋予eax

.text:009C8A38 push eax

.text:009C8A39 call _util_rnav__valide_caract

返回值是al

.text:009C8A3E mov [ebx+4], al

al赋予[a5+104* i-8+4]

.text:009C8A41 add esp, 10h

.text:009C8A44 inc esi

.text:009C8A45 cmp esi, 3

.text:009C8A48 jle short loc_9C8A26

根据以上分析,伪代码中的赋值语句应改为:

*(_BYTE *)(&a5[104 * i - 8 + 4]) = util_rnav__valide_caract(&a5[104 * i - 104]);

后来查看了GHIDRA的反编译结果,其中与上述相关的伪代码是正确的:

iVar17 = 1; do { iVar16 = param_5 + iVar17 * 0x68; uVar15 = _util_rnav__valide_caract(iVar16 + -0x68); *(undefined *)(iVar16 + -4) = uVar15; iVar17 = iVar17 + 1; } while (iVar17 < 4);

看来用GHIDRA核查IDA生成的伪代码是可行的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 6:12:34

5个维度解锁投资组合风险:gs-quant多因子模型深度探索

5个维度解锁投资组合风险&#xff1a;gs-quant多因子模型深度探索 【免费下载链接】gs-quant 用于量化金融的Python工具包。 项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant 在瞬息万变的金融市场中&#xff0c;我们是否真正理解投资组合的风险来源&#x…

作者头像 李华
网站建设 2026/4/12 17:55:47

完整指南:如何使用RockYou2021.txt进行安全测试

RockYou2021.txt是目前全球最大的密码词表文件&#xff0c;包含820亿个独特密码条目&#xff0c;专门用于网络安全测试和密码强度评估。这个庞大的词表文件为安全研究人员提供了前所未有的测试资源&#xff0c;帮助发现和修复系统中的安全漏洞。 【免费下载链接】RockYou2021.t…

作者头像 李华
网站建设 2026/4/16 23:18:35

简单理解:CAN 总线中数据帧 、远程帧、标准帧 、 扩展帧

CAN 总线中数据帧 / 远程帧&#xff08;按功能分类&#xff09;和标准帧 / 扩展帧&#xff08;按标识符长度分类&#xff09;的核心概念&#xff0c;这些是 CAN 总线通信的基础&#xff0c;我会用通俗易懂的方式拆解&#xff0c;结合嵌入式开发场景说明。一、先理清分类逻辑CAN…

作者头像 李华
网站建设 2026/4/10 5:25:41

WriteGPT AI写作框架完整使用指南

WriteGPT是由图灵项目开发的开源AI写作框架&#xff0c;基于GPT-2.0架构构建的初代创作型人工智能系统。该项目专注于议论文创作领域&#xff0c;具有可扩展和可进化的特性。 【免费下载链接】WriteGPT 基于开源GPT2.0的初代创作型人工智能 | 可扩展、可进化 项目地址: https…

作者头像 李华
网站建设 2026/4/7 13:31:25

PDFx:智能PDF引用提取与批量下载终极指南

PDFx&#xff1a;智能PDF引用提取与批量下载终极指南 【免费下载链接】pdfx Extract text, metadata and references (pdf, url, doi, arxiv) from PDF. Optionally download all referenced PDFs. 项目地址: https://gitcode.com/gh_mirrors/pd/pdfx PDFx是一款强大的开…

作者头像 李华
网站建设 2026/4/9 6:41:18

Markdown数学公式编写:记录模型推导过程

Markdown数学公式编写&#xff1a;记录模型推导过程 在人工智能实验室的一次组会上&#xff0c;一位博士生正展示他最新的神经网络优化方案。当他切换到一张手写公式的照片时&#xff0c;导师皱起了眉头&#xff1a;“这个梯度推导能不能放进 Notebook 里&#xff1f;现在谁还能…

作者头像 李华