news 2026/5/30 19:08:29

用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/5/27 12:36:18

毕设项目分享 基于深度学习的安检管制物品识别系统

文章目录 0 简介1 课题背景2 实现效果3 卷积神经网络4 Yolov55 模型训练6 实现效果最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 基于深度学习的安检管制物品识别系统 项目运行效果&#xff1a; 毕业设计 深度学习管制刀具识别系统&#x1f9ff; 项目分享:见文…

作者头像 李华
网站建设 2026/5/21 11:49:23

Hub Mirror Action:解决国内开发者网络痛点的GitHub同步终极方案

Hub Mirror Action&#xff1a;解决国内开发者网络痛点的GitHub同步终极方案 【免费下载链接】hub-mirror-action 项目地址: https://gitcode.com/gh_mirrors/hu/hub-mirror-action 你是否曾经在深夜调试代码时&#xff0c;被GitHub的龟速下载折磨得焦头烂额&#xff1…

作者头像 李华
网站建设 2026/5/30 7:36:58

SSH免密登录Miniconda容器实现自动化训练任务调度

SSH免密登录Miniconda容器实现自动化训练任务调度 在高校实验室或AI研发团队中&#xff0c;一个常见的场景是&#xff1a;研究人员在本地完成模型代码编写后&#xff0c;需要将其部署到远程GPU服务器上进行长时间训练。然而&#xff0c;每次都要手动配置Python环境、输入密码登…

作者头像 李华
网站建设 2026/5/23 18:59:07

快速免费BLF转ASC格式转换工具:无需安装CANOE软件

快速免费BLF转ASC格式转换工具&#xff1a;无需安装CANOE软件 【免费下载链接】CANOEBLF转ASC格式工具 本仓库提供了一个用于将 CANOE BLF 格式文件转换为 ASC 格式的工具。该工具使用 C# 语言实现&#xff0c;无需安装 CANOE 软件即可完成转换操作 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/5/23 18:59:08

代码规范革命:如何用Google规范提升团队开发效率3倍

代码规范革命&#xff1a;如何用Google规范提升团队开发效率3倍 【免费下载链接】styleguide 项目地址: https://gitcode.com/gh_mirrors/st/styleguide 你是否曾经在团队协作中遇到这样的困扰&#xff1a;新同事提交的代码风格五花八门&#xff0c;review时花费大量时…

作者头像 李华
网站建设 2026/5/29 22:53:13

2025年AI论文终极指南:8款免费神器一键搞定,告别写作恐惧症!

如果你还在为开题报告、文献综述、数据分析、格式调整和查重降重而彻夜难眠&#xff0c;那么这篇文章就是你学术生涯的转折点。2025年&#xff0c;AI论文工具已经进化到令人惊叹的程度&#xff0c;从“辅助”直接跃升为“主力”。我们耗费数月&#xff0c;深度测评了市面上近百…

作者头像 李华