IDA 入门

IDA 入门

安装IDA

安装仅作学习使用,参考: https://www.bilibili.com/video/BV1uA411V7LK

启动IDA

启动IDA后,出现欢迎界面,提供三种选项
在这里插入图片描述

  1. New 新建:会启动一个标准的File Open对话库那个来选择要分析的文件
  2. Go 运行:回打开一个空白的工作区。
  3. Previous 上一个:可以打开其下“最近使用过的文件”列表中的一个

IDA文件加载

启动IDA后,NEW或者空白工作区File-》Open一个新文件后,会有一个加载框。
IDA会生成一个可能的文件类型列表,并在对话框顶部显示这个列表
在这里插入图片描述

  1. 加载器列表。第一个是IDA自动识别出来的推荐选项。Binary file(二进制文件)是这个列表最后一个选项,会一直显示,因为他是IDA加载无法识别的文件的默认选项,提供了最低级的文件加载方法;
  2. Processor Type(处理器类型)多数情况下,IDA会自动识别。如果IDA无法确定,需要手动选择
  3. Loading Offset(加载偏移量)后续可更改Edit-》Segments-》Rebase Program
  4. Kernel option (核心选项) 绝大多数情况下,默认选项提供的都是最佳的反汇编选项。
  5. Processor Options(处理器选项)用来选择适用于选中的处理器模块的配置选项,但不一定对每个处理器模块有效。他只能为反汇编过程提供有效的帮助。

绝大数情况下,用户可以使用默认的

使用二进制文件加载器

由于没有文件头信息的引导分析过程,需要手动执行

  1. 可选16位模式代码还是32位模式代码
    在这里插入图片描述

  2. 可以创建一个RAM块或者ROM块,或者同事创建这两块。Input file用来指定加载文件的哪一个部分

  3. 最后有一个提示,用户需要指定文件中的一个地址作为入口点,告诉IDA将这个地址的字节转换成代码(点那行,然后键盘按C)。对于二进制文件,IDA不会进行任何初始反汇编,除非你至少确定了一个代码字节。

在这里插入图片描述

IDA数据库文件

选择加载项后,进行分析,出现四个与文件名同名的的文件。IDA环境外难以编辑
在这里插入图片描述

  1. id0:二叉树形式的数据库
  2. id1:包含描述每个程序字节的标记
  3. nam:包含与IDA的Names窗口中显示的给定程序位置有关的索引信息
  4. til:存储一个更定数据库的本地类型定义有关的信息。

创建IDA数据库

选择加载器模块后,自动的。完成后可能有一下信息:

  • 编译器识别
  • 函数参数和局部变量识别
  • 数据类型信息

关闭IDA数据库

在这里插入图片描述

  1. 不打包数据库。仅刷新4个数据库组件
  2. 打包数据库(存储)。会将四个组件文件存到一个IDB文件中,那四个问价被删除
  3. 打包数据库(压缩)。约等于2,唯一差别是4个组件文件被压缩到IDB归档文件中
  4. 收集垃圾。从数据库中删除任何没有用的内存页面。通常,中有在磁盘不足时才选这个
  5. 不保存数据库。放弃当前修改

重新打开数据库

IDA出现Bug意外关闭,可以关注一下

IDA桌面

在这里插入图片描述

  1. 工具栏
  2. 导航栏。呈现二进制文件的整个地址范围。不同颜色代表不同类型的文件内容。黄色小箭头表示当前位置
  3. 数据显示窗口。view-》open subviews可打开不小心关闭了的窗口
  4. 反汇编视图
  5. 反汇编图形试图的缩小版
  6. 输出窗口。约等于控制台输出设备
  7. 函数窗口。后续讨论

桌面技巧

  • 回复无意中关闭的数据显示窗口:view-》open subviews
  • 回复初始布局:Windows-》Reset Desktop
  • 保存当前桌面布局:Windows-》Save Desktop
  • 修改字体:选择你要修改字体的地方,右键,选Font
### 使用 IDA Pro 分析 Hex 文件的方法 IDA Pro 是一款功能强大的反编译工具,可以用于分析多种类型的二进制文件,包括Hex文件。通过特定的操作流程,能够有效地解析并理解这些文件的内容。 #### 准备工作 为了开始分析过程,首先需要获取适用于目标平台的 IDA Pro 版本,并确保其已正确安装配置完毕[^3]。 #### 加载 Hex 文件到 IDA Pro 中 启动应用程序之后,在主界面选择 "File" -> "Load file" -> "Binary File..." 。此时会弹出对话框提示输入加载选项;由于Hex文件本质上属于十六进制编码的数据流形式存储,因此在该窗口内需指定正确的加载设置来匹配待处理的目标文件特性: - **Format**: 选择 `Raw binary` 或者其他适合的形式。 - **Processor type**: 根据具体应用场景选取合适的处理器架构类型,比如 ARM Cortex-M 系列对于 STM32 设备而言较为常见。 - **Address size**: 设置地址宽度参数以适应不同硬件环境下的需求差异。 - **Loading offset/base address**: 如果有特殊要求,则在此处设定相应的偏移量或基址信息。 完成上述配置后点击 OK 即可导入所选中的 Hex 文件进入下一步骤。 #### 初始化数据库与初步查看 一旦成功读取数据,IDA 将自动创建一个新的项目数据库,并尝试识别其中可能存在的结构化特征(如函数入口点、字符串常量区段等),这有助于后续更深入的研究工作开展。用户可以通过左侧导航栏浏览各个内存区域分布情况以及右侧显示的具体指令级细节描述。 #### 利用插件增强功能 考虑到某些复杂场景下原生支持或许不足以满足实际需求,这时便可以考虑借助第三方扩展模块进一步提升工作效率。例如,针对嵌入式系统的固件逆向工程任务来说,“Hex-Rays Decompiler” 插件就提供了非常实用的帮助,它可以在很大程度上简化从机器码恢复高级语言源代码的过程[^1]。 #### 应用 F5 功能转换为 C/C++ 当面对由汇编语言构成的部分难以直观解读时,不妨试试按下快捷键 F5 来触发内置的去混淆机制,试图将其重构回接近原始编写状态的样子 —— 这里指的是尽可能还原成易于人类阅读维护的 C / C++ 形式的伪代码表示法。不过需要注意的是,尽管这项技术已经相当成熟可靠,但由于种种原因并非总能百分之百完美重现最初的意图表达方式[^2]。 ```python def analyze_hex_file_with_ida_pro(hex_path, processor_type="ARM"): """ A function to demonstrate how one might programmatically interact with IDA Pro using its scripting capabilities. :param hex_path: Path to the HEX file that needs analysis. :param processor_type: The target architecture's processor type (default is 'ARM'). """ import idc # Load the specified HEX file into IDA as a raw binary image idc.load_binary_file(processor_type, hex_path) # Automatically determine entry points and other important features of the code idc.auto_wait() # Attempt decompilation where possible via pressing F5 key equivalent command idc.decompile_here(idc.here()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值