GDA3简介(最新版本请到:官网下载)
GDA3是一款简洁、轻便、快速的交互式Android反编译分析工具,工具提供强大的静态分析功能,目前支持apk、dex、odex、oat类型的android文件。
在Android可执行文件反编译分析上,GDA摆脱了使用java速度慢的问题,完全采用C++完成核心解析功能,并且使用了字节码直接转java伪代码的解析方式,无需转换成smali汇编后在做反编译,大大提升了解析速度。
此工具提供了很多实用工具,如查壳功能、odex转dex、oat转dex、xml二进制解析器、算法工具、android设备内存dump等等功能,在交互式分析上,提供了字符串、方法、类和域交叉引用查询、调用者查询、搜索功能、注释功能、分析结果保存等等功能。
GDA3中重写了所有反编译器代码,从反汇编、数据流分析、中间语言优化、结构化分析等都做了重大改变,同时极大的优化DEX解析引擎、恶意行为检测引擎、查壳引擎,相比GDA1、GDA2,在分析速度、稳定性、使用体验方面都有极大的改善和提升。
3.31更新
1.重新设计了界面,对代码着色做了些调整。
2.树形框与编辑框大小可拖拽移动。
3.纠正了部分情况下代码着色时的拖延问题。
4.对反编译引擎做了进一步的优化和排错。
5.变量类型分析做了变化,如果存在调试信息,使用调试信息中的变量类型。
6.添加了本地变量优化算法,防止分支结构中出现重复声明问题。
7.添加try-catch结构优化算法,对相同handler的异常做了融合。try{}体代码更加精确。
8.添加十六进制编辑功能,可实现任意偏移的Dex文件编辑。
相关截图细节:
主界面做了改动:
调整了一下
代码颜色
:
把鼠标放置在树形框与代码框之间,左右拖到可以调整两者之间大小。
Dex编辑功能需要先点击左侧树形框的HexView,可以按快捷键G,跳转到你想要编辑的偏移地址,然后进行编辑。
有两种编辑方式,一种是单个16进制的编辑,一种是16进制拷贝。
单个16进制编辑只需将光标放在要编辑的地方键盘输入即可,16进制拷贝可以进行连续位置的数据覆盖,拷贝的数据格式必须为"23 44 FA 78"的形式。
注意,编辑之后点工具栏的保存,GDA会自动做DEX的signature更新。
/////////////////////////////////////历史更新////////////////////////////////////////////////////////////////////////////////////
3.0更新
1.对恶意行为扫描引擎,极大的提高了恶意行为扫描速度,比以前扫描速度提升了2倍以上。
2.增加全局导入API扫描功能,可查看该APK所使用的所有有效API功能(其中包含所使用的native函数)
3.优化了点击字符自动背景作色算法,大大改善了作色的速度,尤其是在大函数中,体验会比较明显。
4.完全重写了反编译引擎,本次花费了大量精力深入研究反编译理论技术并且实现了Android字节码的反编译,反编译效果已经非常接近JEB。
5.修复S/s快捷键搜索类时,双击类无法显示类的bug.
6.对GDA文件做了文件关联(需要开启注册表HKEY_CLASSES_ROOT的读写权限)
一、主界面说明
打开GDA并且将你所要分析apk文件拖拽到软件界面上:
如果APP被加固处理,GDA会对加固进行自动识别,显示在Dex头和APK权限之间,如图
:
点击OPTLoad可以进入到APK的入口函数:
在汇编代码区,可以按F5反编译当前方法。
双击进入被调用函数,X交叉引用查看调用者。
二、快捷键说明
快捷键功能说明
GDA快捷键功能说明 |
快捷键 | |
X | 交叉引用,定位调用者(支持字符串,类,方法,域,实用于smali和java) |
Esc/<-/Backspace | |
-> | |
G | |
N | |
S | |
C | |
鼠标双击 | 光标置于方法处,双击可以进入查看方法或者其他数据。 |
M | |
UP | 把焦点放在左边树形控件上,按下up键可以访问基于内存的上一个方法 |
Down | 把焦点放在左边树形控件上,访问基于内存的下一个方法 |
D | |
Enter | |
H | |
Ctr+A | |
Ctr+C | |
Ctr+V | |
Ctr+X | |
Ctr+F | |
Ctr+S | 保持当前修改生成GDA数据库文件,如方法名,类名,指令修改、注释。 |
三、辅助工具
1.二进制XML解码
完全自主实现的解码,可绕过反解码技术,成功解析XML。
2.算法工具
实现加密解密功能,实现了如下算法:
Hash算法: md2 md4 md5 sha sha1 sha224 sha256 sha384 sha512
对称加密:des idea rc2 rc4 rc4-40 rc2-40 rc2-64 bf cast5 aes(128 192 256)及其相应的模式如ecb cbc ofb cfb,其他模式如(cfb1 cfb8)
非对称加密:RSA
编码算法:base62, base64
3.进程模块dump工具
具体使用参考知乎:https://zhuanlan.zhihu.com/p/26341224
4.搜索工具(S)