声明
该公众号分享的安全工具和项目均来源于网络,仅供学术交流,请勿直接用于任何商业场合和非法用途。如用于其它用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。
IDA
IDA含义为Interactive Disassembler,也有说法该名字来源于第一个程序员Ada Lovelace。目前世界上最好用的反编译工具,也有调试功能。
使用指南
IDA官网: https://hex-rays.com/ida-pro/ IDA意思是Interactive Disassembler,也有说法该名字来源于第一个程序员Ada Lovelace。
因为IDA是很贵的商业软件,一般都在吾爱破解等网站下载 https://down.52pojie.cn/Tools/Disassemblers/IDA_Pro_v8.3_Portable.zip https://down.52pojie.cn/Tools/Disassemblers/IDA.txt
IDA不仅可以反编译,也可以调试,但一般只有在远程调试时才会用,这里只介绍反编译功能。
使用IDA打开exe,默认为汇编视图(IDA View)的图形式,内容为汇编代码,图形式在逻辑较复杂时可以大概看一下分支逻辑。左下角有完整的流程缩略图
按空格可以切换为汇编视图的文本形式,空格可以在图形式和文本形式之间切换
F5或Tab键可以把汇编代码还原成伪代码,并切换到伪代码视图(Pseudocode) 每次在汇编视图按F5都会新建一个伪代码视图,Tab键可以在汇编视图和伪代码视图之间切换
经常用到的功能是交叉引用,即找用到某个对象的地方,可以找字符串、变量、函数等对象,快捷键是x,下图为“Hello World!n”字符串的使用位置
有2个偶尔会用到的功能,通过菜单栏Options–>General…打开
“Auto comments” 自动添加注释解释汇编指令,前后对比如下,可以看到部分指令被添加了注释解释其含义,当对汇编指令不太熟悉或遇到其他指令集的时候比较有用
“Number of opcode bytes(non-graph)” 展示字节码,前后对比如下,可以看到汇编指令对应的字节码,在分析二进制特征时会用到,比如写yara、打补丁、修改逻辑等
原文始发于微信公众号(Eonian Sharp):逆向工具篇 | IDA 工具补充