news 2026/4/18 6:27:12

甄别伪代码中的二维数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
甄别伪代码中的二维数组

以下是IDA生成的关于变量dword_2810F8C伪代码:

int dword_2810F8C[]; // weak int page_s_tactical__g_num_rte[]; // weak if ( v22 > 5 ) //这是Ada编译器插入的判断下标是否合法的语句 __gnat_rcheck_05("page_s_tactical.adb", 1252); if ( v29 > 1u ) //这是Ada编译器插入的判断下标是否合法的语句 __gnat_rcheck_06("page_s_tactical.adb", 1252); dword_2810F8C[6 * v29 + 1 + v22] = *(_DWORD *)(a2 + 12 * (v26 - 1) + 8);

根据以上两行if语句,可知v22与v29是数组下标。

v22的合法数值范围是0..5。

v29的合法数值范围是0..1。

从汇编清单中可知page_s_tactical__g_num_rte的起始地址是0x2810F90:

bss:02810F8C ; int dword_2810F8C[] .bss:02810F8C dword_2810F8C dd ? .bss:02810F90 ; int page_s_tactical__g_num_rte[] .bss:02810F90 _page_s_tactical__g_num_rte dd ? .bss:02810F94 align 40h .bss:02810FC0 ; char page_s_tactical__g_exec_pressed[]

page_s_tactical__g_num_rte与dword_2810F8C相差4个字节。

page_s_tactical__g_num_rte的长度是48个字节。

由此可见,

dword_2810F8C[6 * v29 + 1 + v22]

可改写为:

page_s_tactical__g_num_rte[v29][v22]

因此,page_s_tactical__g_num_rte可以定义为:

Int page_s_tactical__g_num_rte[2][6];

其他关于dword_2810F8C的伪代码都可以进行相应的修改。例如:

dword_2810F8C[6 * a1 + page_s_tactical__num_page[a1]]

可改为:

page_s_tactical__g_num_rte[a1][page_s_tactical__num_page[a1] - 1]

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

信笺纸设计工具支持多种纸张模板与自定义设计功能多种预设纸张模板:提供标准A4、红头文件、文字模板、带Logo文字模板

大飞哥软件自习室——信笺纸设计工具大飞哥软件自习室荣誉出品的这款信笺纸设计工具,是一款集专业性与便捷性于一体的实用软件,专为满足不同场景下的信笺纸设计需求而生。无论是职场办公中常用的正式文件信笺,还是个人通信所需的个性化信纸&a…

作者头像 李华
网站建设 2026/4/16 19:33:32

AutoGPT接入第三方API的操作方法详解

AutoGPT接入第三方API的操作方法详解 在智能体技术飞速演进的今天,我们正见证一个从“对话式AI”向“自主执行型代理”的深刻转变。传统聊天机器人依赖用户逐条指令推进任务,而像 AutoGPT 这样的新型框架,则能仅凭一句高层目标——比如“帮我…

作者头像 李华
网站建设 2026/4/3 9:51:12

AutoGPT支持GraphQL查询语法了吗?接口兼容性验证

AutoGPT支持GraphQL查询语法了吗?接口兼容性验证 在企业级应用日益智能化的今天,一个关键问题浮现出来:我们能否让AI代理直接与现代API架构无缝协作?比如,当业务系统广泛采用GraphQL作为微服务通信标准时,像…

作者头像 李华
网站建设 2026/4/17 1:20:34

Navicat 技术指引 | 面向达梦的查询解释

近期,Navicat 宣布正式支持国产达梦数据库。Navicat 旗下全能工具 Navicat Premium 支持达梦用户的全方位管理开发需求,而轻量化免费的 则满足小型和独立开发者的基础需求。 Navicat Premium 自版本 17.3 开始支持达梦 DM8 或以上版本。它支持的系统有…

作者头像 李华
网站建设 2026/3/27 23:31:24

基于SpringBoot的乡村支教管理系统

基于SpringBoot的乡村支教管理系统设计与实现 第一章 系统开发背景与现实意义 当前乡村支教面临资源分散、对接低效、管理不规范等突出问题:支教需求(师资、物资)与志愿者资源信息不对称,匹配精准度低;支教过程缺乏系统…

作者头像 李华