GDA是一款使用C++实现的Dalvik字节码反编译器,为用户带来更快、更流畅的使用体验。软件能够帮助用户对APK、DEX、ODEX、OAT文件进行反编译。软件完全独立,无需用户安装Java即可运行。软件中有着丰富的功能,可帮助用户极大的提升工作效率。
软件功能
1、dex文件解析,dex文件解析主要用于定位类,方法,域以及字符串等等信息,其中反编译器需要用到字节码是直接从method中解析得来,此外GDA还需获取try-catch信息,调试信息等以备后用(主要在代码生成时使用)。
2、指令解码,对方法的字节码进行解码,类似于反汇编,识别出240多条字节码并将其转化为低级中间表式(LIR)和高级中间表式(GDA的中间表式并非如llvm的文本型中间表示,而是内存结构型的表达式),然后对中间表式进行优化,剔除无效语句,然后生成控制流图。GDA中每个低级中间表式都一一对应着字节码指令,高级中间表式的数目小于等于低级中间表式的数目。此外,之后实现的污点传播分析引擎也是基于高级中间表达式进行的。
3、控制流图的生成,扫描每个高级中间表达式,查找分支、跳转指令建立基本块儿(同时把try-catch也考虑进去),进一步建立起控制流图。此外还需要对控制流图进行优化,简化控制流图,去除无意义的基本块,GDA还在这个阶段做一些反混淆的工作,用于对抗一些无用跳转,但是此处作用有限,更进一步的反混淆在数据流分析中实现。
4、数据流分析,有了控制流图,使用DFS遍历控制流图对基本块儿内及块间进行数据流分析,本处GDA并没有采用du(定义使用链)来实现,而是采用了比较快的使用定义计数法来实现数据流分析,对低级中间代码进行优化。此外,数据流分析中,GDA同时实现了类型推断,以给每个低级中间表式的输入输出值确定其类型。同时,反混淆也在数据流分析中实现。
5、高级中间代码生成,优化完成后,就可以生成高级中间代码,按照DFS遍历每个基本块,以基本块为单位进行高级中间代码生成,此处需要应用复制传播来进行低级中间表式的迭代,以生成大幅缩减的代码语句。同时应用调试信息来修改变量符号。
6、结构化分析,GDA到这个阶段实现了多复合条件的分析,并对二路(if-else)、多路(switch-case、try-catch)、环(while、do-while、for)结构进行了结构化分析,为最终代码输出做准备。结构化分析时对于非结构化图,只能采用goto来实现,确保反编译后逻辑正确性。
7、java代码生成,最后按照java的代码格式来生成代码,尤其对于try-catch型的结构,为了防止try块儿于代码的生成以method为单位也可以以类为单位进行代码生成。GDA主要以method为单位,并将类和方法进行了分离。
软件特色
c++编写,独立于java和android sdk,无需安装java和android sdk即可使用
有效绕过各种字节码陷阱、类型混淆以及anti-disassembling和anti-decompiling技术
支持dex、odex、apk、oat、jar、class、aar文件的反编译分析
支持multi-dex反编译
支持对strings,class,method,field进行交叉引用和搜索(模糊匹配、精确匹配、正则)
支持class、method、field及变量重命名,java代码注释
分析结果保存,odex、oat转dex
设备内存dump,可用于辅助脱壳
反混淆支持
针对字符串、方法、类、域等关键信息提供了强大的搜索、交叉引用
Python和Java自动化插件支持
方法签名支持
基于API链的恶意行为识别
变量及寄存器追踪与溯源分析
漏洞扫描,自定义漏洞规则
隐私泄露检测
精细化的程序路径求解
APK取证分析
标签: 反编译工具
精品推荐
-
IntelliJ IDEA 2019
详情 -
Microsoft VC++6.0安装包
详情 -
Microsoft VC++2015版运行库
详情 -
VC++2019运行库
详情 -
RobotStudio
详情 -
Intel Visual Fortran
详情 -
Microsoft Visual Studio 2022
详情 -
Microsoft VC++2010运行库安装包
详情 -
源码编辑器4.0
详情 -
博途V18破解授权软件
详情 -
GX Works2
详情 -
microsoft visual studio 2019免费版
详情 -
hypermill2021超级加密狗破解版
详情 -
西门子博途v17破解版
详情 -
星三好图形化编程软件官方最新版
详情 -
VBSEdit9
详情
-
6 源码智造编辑器
装机必备软件
网友评论