IDA个人使用报告

前言

工欲善其事,必先利其器。
IDA的强大是毋庸置疑的,但是由于本人在最开始学习IDA时没有关注IDA的强大功能,只是将就能用就行,这导致本人放弃拥入IDA的怀抱,转而投向OD等在动态分析方面更强大的工具。

然而,OD固然好用,但在大量代码面前必然存在局限性,只有拥抱IDA才能提高自身逆向水平。
I
DA存在大量的功能快捷键,有些功能能够让使用者在逆向时更加舒服方便。

在之后的文章中,我在给各种功能快捷键分类时是以本人的使用体验分类的,读者可能会有不同感受体验。

基本功能,重要性程度最高,使用与不使用差别非常大

  1. F5:查看伪代码
  2. shift+f12: 可以打开string窗口,一键找出所有的字符串
  3. x:对着某个函数、变量按该快捷键,可以查看它的交叉引用
  4. alt+t :搜索指令,可用来搜索某些关键代码
  5. IDApython:写python脚本,高阶功能,做某些重复操作会更加方便(比如去除花指令)
  6. 远程调试
  7. C:表示将当前的数据按照代码形式显示 (去除花指令必备)
  8. D:表示将当前的数据按照数据的形式显示 (去除花指令必备)
  9. P: 定义函数(去除花指令必备)
  10. 在函数窗口中用Ctrl+E或在反汇编窗口的函数内部用Alt+P :修改函数参数
  11. G:跳转到某一地址
  12. 十六进制窗口中使用F2进行数据的修改,修改后再次按下F2即可应用修改(patch)(有些版本的IDA中没有安装keypatcher插件,无法方便的patch,但可以使用上述方法)
  13. shift+E 快速提取数据

非常舒服的功能,可用可不用,个人推荐度很高

  1. 空格:流程图 与 线性表之间转换
  2. Tab:C语言与汇编之间转换
  3. n:更改变量的名称
  4. y:更改变量的类型
  5. / :在反编译后伪代码的界面中写下注释
  6. \:在反编译后伪代码的界面中隐藏/显示变量和函数的类型描述(※本人非常喜欢)
  7. windows–>reset desktop: 可以恢复初始ida布局
  8. ctrl+F :筛选函数窗口(※ 本人非常喜欢)
  9. A:表示将当前的数据用字符串的形式显示
  10. R: 将数字转化成字符类型
  11. H:任何类型转化成数字
  12. “options”->”General”->”Numbers of opcode bytes”:显示汇编代码的字节码
  13. Edit-> patch program: patch!!

一般的功能,个人推荐度不高,但是读者可能使用起来很舒服

  1. option–>general->Line prefixes:在流程视图中添加地址偏移
  2. option–>general->Auto comments:自动添加反汇编注释(开启了自动注释的功能后,IDA就可以直接告诉你汇编指令的意思)
  3. 在伪代码中右键之后点击”Collapse declaration”: 隐藏变量的声明区域
    (前两条不推荐的原因是占用了视图空间,反而影响分析,第三条不推荐的原因是无法看到都声明了哪些变量,但是可以在看完后再使用这一个功能)

后言

很多高阶功能需要学习更多的知识,在此没有列出来,作者仍在学习过程中。

本文的内容一部分来源于以下两个链接:

https://www.cnblogs.com/Max-hhg/articles/14266616.html
https://blog.csdn.net/weixin_60363168/article/details/127747274

另一部分内容来源于N1BOOK中对IDA的介绍