IDA Pro 权威指南阅读摘要1

IDA Pro 权威指南阅读摘要1

文件加载
使用File->Open命令打开一个新文件时,会看到加载对话框。
Binary File (二进制文件)是加载类型列表的最后一个选项,它是IDA加载无法识别的文件的默认选项。
在Processor Type下拉菜单中可以指定在反汇编过程中使用的处理器模块(在IDA的procs目录中)。
多数情况下,IDA将根据它从可执行文件的头中读取到的信息,选择合适的处理器。
如果同时选择了二进制文件输入格式和一种x86系列处理器,Loading Segment(加载段)和Loading Offset(加载偏移量)字段将处于活动状态。

使用二进制文件加载器
如果选择使用二进制加载器,没有文件头信息引导分析过程。
需要使用二进制加载器的情形包括:分析从网络数据包或日志文件中提取出来的ROM镜像和破解程序负载。
如果选择一个x86类型的处理器,则必须在加载对话框的Loading Segment和Loading Offset字段中指定基址信息。
IDA会提醒用户指定文件中的一个地址作为入口点。

基本IDA导航
IDA将生成并显示一个完整的交叉引用列表。多数情况下,到导航到感兴趣的位置,只需双击鼠标。
反汇编程序时,程序的每个位置都分配到了一个虚拟地址。只要提供希望访问的位置的虚拟地址,就可以导航到程序的任何地方,但是大量地址不容易记住。早期的程序员给他们希望引用的程序位置分配符号名称。
在分析阶段,IDA会通过检查二进制文件的符号表生成符号名称,或根据二进制文件引用位置的方式自动生成一个名称。
在各种子窗口中,双击一个名称,IDA将跳转到反汇编窗口中被引用的位置。

快速库识别和鉴定技术
库快速识别和鉴定技术,简称FLIRT,IDA用于识别库代码的一组技术。核心是各种模式匹配算法。

跳转表与分支语句
C语言的switch语句经常成为编译器优化的目标。

========

在Windows上安装IDA时,IDA会创建注册表项 HKEY_CURRENT_USER\Software\Hex-Rays\IDA。

Load new file 对话框
    如果同时选择了二进制文件输入格式和一种x86系列处理器,Loading Segment(加载段)和Loading Offset(加载偏移量)字段将处于活动状态。
    在最初的加载过程中,如果忘记指定基址,可以在任何时候使用Edit-Segments-Rebase Program命令来修改IDA镜像的基址。
    Kernel Options(核心选项)按钮用于配置特定的反汇编分析选项,IDA可利用这些选项改进递归下降过程。

IDA 数据库文件
    将选定的可执行文件加载到内存中,随后,IDA会创建一个数据库,其组件分别保存在4个文件中,这些文件的名称与选定的可执行文件的名称相同,扩展名分别为.id0、.id1、.nam和.til。.id0是一个二叉树形式的数据库,.id1文件包含描述每个程序字节的标记。.nam文件包含与IDA的Names窗口中显示的给定程序位置有关的索引信息。.til文件用于存储与一个给定数据库的本地类型定义有关的信息。

函数窗口
    用于列举在数据库中识别的每一个函数。一个条目如下:
malloc        .text        00BDC260 00000180 R...B..
    此条目解释如下:
    可以在二进制文件中虚拟地址为00BDC260的.text部分找到malloc函数;
    该函数长384字节,十六进制为180字节;
    它返回调用方R,并使用EBP寄存器B引用它的局部变量;
    
结构体窗口
    结构体窗口用于显示IDA决定在一个二进制文件中使用的任何复杂的数据结构(如C结构体和联合)的布局。
    在分析阶段,IDA会查询它的函数类型签名扩展库,设法将函数的参数类型与程序使用的内存匹配起来。
 

发布了434 篇原创文章 · 获赞 512 · 访问量 294万+

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/102578252