标题:IDA学习笔记
作者:kagula
日期:2015-06-09
环境:IDA 6.6、VS2013Update4
阅读前提: 熟悉计算机指令
介绍
通过分析自己用VS2013写的Win DLL来学习IDA反汇编工具的使用。这里记录了我分析二进制代码过程中经常遇到的问题。
首先通过参考资料[1]来熟悉下IDA的使用,建立个最基本的概念。“idb”文件是你分析样本的数据库文件,你对样本的分析信息,比如对函数变量的重命名了,代码的注释了,都会存在这个文件里。
PE(Portable Executable)格式,是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式,这是我现在要分析的样本格式。
IDA的主要窗口如下
IDA view: 定位要修改的代码段在哪里。
Hex view: 用来修改我们的数据
exports window: 导出窗口
import window: 导入窗口
names window: 函数和参数的命名列表
functions window: 样本的所有函数窗口
strings window: 字符串显示窗口,会列出程序中的所有字符串
上面几个窗口由于样本的作者会做些反分析处理, 你装载样本后, 马上去看是不准确的。
分析二进制代码比想像中的复杂很多,除了二进制代码比较冗长外,样本作者还会采取各种措施阻碍你分析它的代码。
一般样本会hide关键字符串,让你找不到。
当然一旦你的IDA程序正确起来加载了样本,就没有破解不了的东西,难是难在时间成本的控制,因为你不可能花几年时间把所有的二进制代码读一遍。
如何确定反汇编的区域
这是最难的部份,样本的作者