【IPA PRO权威指南】五

发布时间 2023-04-12 20:07:13作者: Corax0o0

Winodows控制台

Windows控制台版本-idaw.exe
GUI版本-idag.exe
64位版本idaw64.exe和idag64.exe

Liunx控制台

叫做idal。基本导航与Windows控制台版本类似。使用Linux终端程序时面临的最大挑战在于如何将所有热键原封不动的保留给IDA使用,而不被终端程序使用。(也就是热键冲突)解决方法如下

鼠标支持在于是否使用了GPM(Linux控制台鼠标服务器),如果没有,在启动的时候需要为TVision指定noGPM选项

OS X控制台

相似于Linux版本,也依靠Tvision来实现控制台的输出与输入,目前没MAC设备,略过。

使用IDA的批量模式

所有版本都可以在批量模式下运行,以自动完成任务。这个模式的目的在与启动IDA,使它运行一段特定的IDC脚本,并在该脚本完成后立即终止。GUI不需要控制台来运行。

定制IDA

配置文件

住配置文件ida.cfg

这个文件中保存了对于IDA的使用参数。

GUI配置文件:idagui.cfg

有默认的GUI行为,键盘热键对应关系等等。

控制台配置文件idatui.cfg

对控制台版本的IDA用户而言,与idagui.cfg类似的文件为<IDADIR/cfg/idatui.cfgo这个文件的布局和功能与idagui.cfg非常相似。此外,它的热键分配方法也和idagui.cfg完全相同。

其他IDA配置选项

IDA颜色

options-colors

定制IDA工具栏

view-toolbars

使用FLIRT签名来识别库

快速库识别和鉴定技术

这个技术简称FLIRT,是用于识别库代码的一组技术。核心在于各种模式匹配算法。使得IDA确定一个经过反汇编的函数是否与当中的某一个签名相匹配。

应用FLIRT签名

大部分情况下用自带的就行,会自动识别。
手动数据库应用如下:

创建FLIRT签名为

当解压一个FLIRT签名文件时会看到下面四个文件

  • readme.txt。这个文件总体概述签名创建过程。
  • plb.bxt。这个文件描述静态库解析器plb.exe的用法。库解析器将在12.3.3 节中详细讨论。
  • pat.bxt。这个文件详细说明了模式文件的格式,它是签名创建过程的第-步。我们还将在12.3.3节介绍模式文件。
  • sigmake.txt。这个文件描述sigmake.exe文件的用法,该文件用于从模式文件生成sig文件。请参阅12.3.4 节了解详情。

创建签名概述

四个步骤

  1. 获得-一个你希望为其创建签名文件的静态库。
  2. 利用其中一个FLAIR解析器为该库创建- -个模式文件。
  3. 运行sigmake.exe来处理生成的模式文件,并生成-个签名文件。
  4. 将新的签名文件复制到/sig目录中,安装这个文件。

识别和获取静态库


创建模式文件

为一个库或者几个库创建签名。

创建签名文件

没学明白。

启动签名

用于创建一个二进制文件的编译器时,IDA会应用这个签名。

扩展IDA知识

扩充函数信息

IDA通过两种途径获得与函数有关的信息:类型库( .til)文件和IDS实用工具( .ids)文件。
在初始分析阶段, IDA使用存储在这些文件中的信息来提高反汇编过程的准确性及反汇编代码清
单的可读性。它通过合并函数参数名称和类型,以及与各种库函数有关的注释来完成这个任务。
第8章曾提到过,类型库文件是IDA用于存储复杂数据结构布局的机制。同时, IDA还使用
类型库文件记录与函数的调用约定和参数序列有关的信息。IDA以各种方式使用函数签名信息。
首先,当一个二进制文件使用共享库时,IDA 无法知道这些库中的函数使用的是什么调用约定。
这时, IDA会尝试根据一个类型库 文件中的相关签名来匹配库函数。如果它发现一个匹配的签名,
IDA就可以知道这个函数使用的调用约定,并对栈指针进行必要的调整(如前所述,stdcall 函
数自己对栈进行清理)。使用函数签名的第二种方式是为传递给函数的参数提供注释。这些注释
说明在调用函数之前,到底是哪一个参数被压人到栈上。注释提供的信息量取决于IDA能够解
析的函数签名所包含的信息量。下面的两个签名都是有效的C声明,第二个签名提供了更多有关
函数的信息,除数据类型以外,它还提供了形式参数名称。
显示函数原型的注释来自IDA的一个.til文件,该文件提供与Windows API函数有关的信息。
那么,在什么情况下,你希望生成自己的函数类型签名°呢?如果你遇到-一个链接到(无论
是动态还是静态) IDA并不包含其函数原型的库的二进制文件,你可能希望为这个库中的所有函
数生成类型签名信息,以便IDA能够为自动为你的反汇编代码清单生成注释。这类库包括常用
的图形或加密库,虽然它们不属于标准Windows库,但却使用广泛。OpenSSL加密库就是这样
-个库。