IDA中二进制文件加载与模块分析
1. IDA插件与扩展概述
当脚本无法满足扩展IDA功能的需求时,IDA插件是合理的下一步选择。不过,随着脚本化插件的出现,你可能会抗拒深入研究SDK。除非你面临逆向工程IDA不识别的文件格式或没有处理器模块支持的机器语言的挑战,否则插件可能是你唯一需要探索的IDA扩展类型。接下来,我们将探索IDA SDK提供的其他类型模块,如加载器和处理器模块。
2. 未知文件分析
存在无数种用于存储可执行代码的文件格式。IDA自带了许多识别常见文件格式的加载器模块,但无法涵盖不断增加的所有格式。二进制镜像可能包含特定操作系统的可执行文件、嵌入式系统的ROM镜像、闪存更新的固件镜像,或者是从网络数据包捕获中提取的原始机器语言块。这些镜像的格式可能由操作系统、目标处理器和系统架构决定,也可能没有特定规则。
假设存在一个能反汇编未知二进制代码的处理器模块,你需要在IDA数据库中正确排列文件镜像,并告知IDA二进制文件中哪些部分是代码,哪些部分是数据。对于大多数处理器类型,以二进制格式加载文件后,文件内容会被堆放到从地址零开始的单个段中,如下所示:
seg000:00000000 db 4Dh ; M
seg000:00000001 db 5Ah ; Z
seg000:00000002 db 90h ; É
seg000:00000003 db 0
seg000:00000004 db
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



