IDA操作总结

二木 王者

ida操作

静态分析

1、反汇编:Tab\F5

2、IDA字符串表:shift+F12;或者直接找窗口

image-20230226175251517

打开string窗口后,我们可以按Ctrl+F来调出搜索

image-20230226175638025

在里面输入你想要查找的字符串,如果有原数据,就能成功找到。

双击数据,就能进入对应的内存

3、G键。打开地址窗口

image-20230228202202438

4、X键。查看交叉引用,也就是查看有那些地方调用了这个函数

点击即可进入对于调用的地方

image-20230228202326381

5、重命名符号。将选中的名称进行修改,以便于阅读分析

image-20230228202607658

**6、对于数据处理上.**IDA的储存方式为小端序,例如,0XB1A33454在内存中的存储就是54, 34, A3, B1.

7、U键。在某地址上按下U,就会使得IDA取消对在部分地址的解释。

按U前

image-20230228203508608

按U后

image-20230228203538866

8、C键。将地址标记为代码,并且进行反汇编。也算是和U键互逆。

image-20230228203538866

image-20230228203746253

9、P键。比如刚才,我们将地址按下C分析后,前面为红色部分,这时我们不能进行反汇编,而p键的作用就是创建函数,让其成为一个可反编译的函数(结构需完整)。

按下p后

image-20230228204129463

动态分析

1、F7.单步步过。执行一条语句但不进入函数

2、F8.单步步入。执行一条指令,会进入函数内部。

3、Ctrl+F7.执行到返回。执行到函数的返回指令。一般用于快速跳出当前函数。

4、F4。执行到光标下停下来。将光标悬停在想要执行到的代码,然后按下F4,随后程序就会跳到指向的代码处,一般用于快速跳转到想要执行的代码处。

5、Ctrl+N(Set IP).强制代码从光标处开始执行。一般用于想重复调试某一块代码时使用。比如,分析一个加密前后的数据,寻找规律。这个时候,我们需要多次输入。按照平常,我们就需要多次重新调试,这样就比较麻烦,而使用set ip就能节省很多时间。

6、模块窗口(一般安卓用得比较多)。打开方式——菜单–【debugger】–[debuger windows]–[module list]

7、硬件断点。硬件断点不会修改内存数据。一般情况下,像脱壳,自解密,我们设置一般断点在其之上,会破坏数据。

下硬件断点的方法:首先先下一个普通断点,然后在普通断点处按下鼠标右键,然后点击edit breakpoint ,然后勾选hardware,就将我们的断点转换为了硬件断点。

image-20230304161001692

其中下面的,read:表示断点地址被命中时被读取。writer:断点地址被写入时命中。execute:断点地址被执行时命中。

8、trace分析.打开方法:打开菜单项【debugger】–【tracing】–【tracing options】配置我们的trace。配置好之后,在程序的头部设置一个断点,然后命中断点。再打开进行选择。然后继续运行程序,便成功trace.

image-20230304170248917

一般用于追踪,混淆,花指令之类。

 评论