[原创]GDA3更新至3.31版本:UI做了一些的调整和优化,添加了DEX编辑功能,优化了反编译引擎

发布者:gjden
发布于:2017-08-04 14:21


GDA3简介(最新版本请到:官网下载)

   GDA3是一款简洁、轻便、快速的交互式Android反编译分析工具,工具提供强大的静态分析功能,目前支持apk、dex、odex、oat类型的android文件。

在Android可执行文件反编译分析上,GDA摆脱了使用java速度慢的问题,完全采用C++完成核心解析功能,并且使用了字节码直接转java伪代码的解析方式,无需转换成smali汇编后在做反编译,大大提升了解析速度。

此工具提供了很多实用工具,如查壳功能、odex转dex、oat转dex、xml二进制解析器、算法工具、android设备内存dump等等功能,在交互式分析上,提供了字符串、方法、类和域交叉引用查询、调用者查询、搜索功能、注释功能、分析结果保存等等功能。

    GDA3重写了所有反编译器代码,从反汇编、数据流分析、中间语言优化、结构化分析等都做了重大改变,同时极大的优化DEX解析引擎、恶意行为检测引擎、查壳引擎,相比GDA1GDA2,在分析速度、稳定性、使用体验方面都有极大的改善和提升。

   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
添加注释,仅支持java窗口
鼠标双击
光标置于方法处,双击可以进入查看方法或者其他数据。
M
光标置于指令行时编辑指令,仅支持smali窗口
UP
把焦点放在左边树形控件上,按下up键可以访问基于内存的上一个方法
Down
把焦点放在左边树形控件上,访问基于内存的下一个方法
D
Dump方法的二进制数据,仅支持smali窗口
Enter
对所有编辑框的输入修改生效
H
16进制显示窗口
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







声明:该文观点仅代表作者本人,转载请注明来自看雪