IDA笔记

前面提到好几次IDA,这个工具算是反汇编界的神器了。更加细节的内容可以看《IDA Pro权威指南》 ,这里只是一些笔记而已。

导航条:

蓝色    标识常规的指令函数

黑色   节与节之间的间隙

银白色   数据内容

粉色   表示外部导入符号

暗黄色   表示ida未识别的内容,可能是一些dcb指令,这时候可以选择

              C  将当前地址处的数据解析成代码

              P  

 

IDA主界面:

IDA View 3种反汇编视图:文本视图,图标视图,路径视图

HexView   十六进制编辑/查看窗口

Imports 导入函数窗口

Structures 结构体窗口

Exports 导出函数窗口

Enums 枚举窗口

Strings 字符串窗口

 

IDA调试界面:下面的界面是IDA进入调试状态才会出现的,界面显示一些内存,寄存器等动态信息

反汇编窗口: 显示运行指令,数据等

十六进制窗口,用于查看/修改内存数据和代码

寄存器窗口:查看/修改寄存器的值

模块窗口:模块路径和地址

线程窗口:显示线程信息

栈窗口

输出信息窗口

 

 

常用功能和快捷键:

空格键: 切换反汇编文本视图和图表视图

ESC: 返回上一个操作地址

G:搜索地址和符号

N:对符号进行重命名

冒号/分号(:;)  常规注释

Alt + M: 添加标签

Ctrl + M: 查看标签

Ctrl + S: 查看段信息

代码数据切换:

C-->代码

D-->数据

A-->ascll 字符串

U-->解析成未定义的内容

X:查看交叉引用

F5:32位中的查看伪代码功能,虽然不太准确,有人说是神奇的F5插件

Alt+T: 搜索文本

Alt+B:搜索十六进制

 

 

导入jni.h 分析jni库函数,这里记录下导入方法:

步骤1:

检点修改jni.h,注释第27行的#include<stdarg.h>,还有将1122行的#define JNIEXPORT_attribute_((visibility("default"))) 改成 #define JNIEXPORT ,修改完后可以成功导入

步骤2:

点击IDA Pro 菜单项 "file -->  load file --> parse c header file ",选择jni.h 头文件

步骤3:

点击IDA Pro 主界面上的“structures”选项卡,然后按下Insert键打开“create structure/union”对话框导入两个接口体的接口,点击界面上的“add standard  structure” 按钮,在打开的结构体选择对话框中选择 JNINativeInterface并点击OK返回,同理JNIInvokeInterface结构体也一样。

步骤4:

在0x29C等调用Env 的地方右键,出现jni函数。因为很多时候只是这样一个0x29C 的数我们很难知道确切的含义。

伪C代码窗口:

右键

comment 添加注释

copy to  -assembly  把伪c代码复制到反汇编窗口中的汇编代码,如下所示,可以帮助分析。

IDA可以修改so 的hex 来实现修改so,edit,然后edit  -->  patch  program --> apply patches into file

但是依旧是用winhex 和  notepad++ 这种编辑工具来进行编辑。 

 

 

IDA调试常用功能:

1、断点和运行:

设置断点 F2

设置断点不可用 Disable breakpoint

编辑断点 Edit breakpoint

删除断点  Delete breakpoint

继续运行 F9

查看当前所有断点  Ctrl + Alt +B

 2、单步模式

单步步入 F7

单步步过 F8

运行到函数的返回地址  Ctrl + F7

运行到光标处  F4

 

发布了26 篇原创文章 · 获赞 10 · 访问量 16万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章