0%

IDA的基本使用

前言:IDA是逆向手必会的工具

IDA的基本使用主要分为8类:1)打开文件 2)窗口介绍:图形 文本 其他窗口介绍 3)显示硬编码-> ACDU 4)跳转指令:G 5)搜索指令 ALT+T 7)注释 8)交叉引用

导航栏的不同颜色代码不同区域

深蓝色:用户写的函数编译后的代码区

浅蓝色:编译器自己添加的函数,像启动函数,异常函数等等

粉红色:有关输入表的一些数据信息

军绿色:纯数据,只读

灰色:为了段对齐留下的空间

黑色:禁区没有数据

添加注释:

在文本窗口是;在伪代码窗口时/

shift+F12来到字符串窗口

import窗口:导入表

Hex view:16进制窗口;在这个界面下shift+E可以导出数据

IDA构造结构体快捷键

shift+f9:来到构造结构体的页面

insert:插入一个结构体

在结构体内按d键:添加一个成员

d键:更改成员的大小db dw dd

n键:更改成员名字

y键:更改成员类型(与C语言类型一致)(定义函数int(*)(int *))

u键:删除成员

db是一个字节 偏移量+1

dw是一个字 偏移量+2

dd是双字 偏移量+4

IDA调试

常用快捷键:

F2:断点

F7:步入

F8:单步过

F9:运行

F5:反汇编当前函数(伪C代码)

;:为当前指令添加全文交叉引用的注释

N:定义或修改名称,通常用来标注函数名(更改备注名)

G:跳转到任意地址

Esc:返回到跳转前的位置

H:十六级进制显示数据

D:数据类型切换,Byte,Word,Dword

y:改变数据类型

X:查看按上层调用(交叉引用)

Space 空格:图形视图和文本视图切换

Shift+f12:字符串窗口列表

P:function 将代码段 构建函数

C:code 将数据编译成代码

U:undefine 将反编译出来的代码还原成数据

r:以字符的形式显示

a:以字符串的形式显示

单步步入:

单步步入是一种调试技术,简单的来讲,就是程序会一步一步的执行程序,每执行完一行代码,程序就会将控制权回给调试器,此时你可以检查变量和路径来检查代码的问题和执行逻辑。

通常来讲,通过设置断点来进行单步步入

区别于单步步入,单步步过的意思是调试器执行这一行代码并停在下一行

以函数或方法的调用来作为例子,单步步入是一步一步执行这个函数或者方法,可以跟踪这个函数;而单步步过就是执行完这个函数而进入下一阶段。