GJoy Dex Analysizer(交互式反编译器)
v3.62 绿色版- 软件大小:2.55 MB
- 更新日期:2019-10-23 15:39
- 软件语言:简体中文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
GDA的全程是GJoy Dex Analysizer,它是一款强大而轻便的交互式反编译器,也是一款综合性逆向分析利器;该程序拥有多个实用的功能模块以及多方面的特色,它不仅速度快,小巧,还不需要安装java环境以及android环境便可以直接使用;此工具是国内为数不多的全交互式反编码器,它支持综合性逆向分析,支持python脚本自动化,不仅如此,此程序为用户提供了签名制作与识别功能;在程序系统中,内置的引擎有很多个,而且都是非常实用的,包括反编译引擎合apk壳检测引擎,这些引擎都可以让用户的开发过程变得更加轻松;系统还拥有恶意行为检测引擎和污点传播分析引擎,这两个引擎主要针对检测而设计,可以帮助用户检测设计过程中是否出现异常;可以大幅度提高无源码逆向工程和反编译代码分析的效率;程序拥有的功能还有很多,需要的用户可以下载详细了解
软件功能
1、快速dump设备内存,另外提供有内存模块过滤功能
2、针对字符串、方法、类、域等关键信息提供了强大的搜索、交叉引用
3、提供了基于包过滤的引用字符串查看
4、友好的smali分析界面及java伪代码分析界面(F5)
5、伪代码(字符串、函数)可进行交叉引用(X)以及双击进入被调用者函数等
6、强大快速的恶意行为扫描功能以及ANDROID系统API查看,让你一眼看出APK的真实面目,极大方便了恶意代码分析
软件特色
1、独立于java和android sdk,无需安装java和android sdk即可使用
2、可以解析加过壳的Dex,并且可以有效绕过各种字节码陷阱、类型混淆以及anti-disassembling和anti-decompiling技术
3、完全使用c++编写,快速解析dex、apk和OAT,odex转dex,OAT转DEX
4、直接修改DEX文件的smali指令,无需反编译
5、可修改DEX文件中的字符串(支持中文)
6、改进优化的xml解析器(可解析加壳处理过xml),支持过滤显示功能
使用方法
需要的用户可以点击本网站提供的下载路径下载得到对应的程序安装包
通过解压功能将压缩包打开,打开程序数据包后就可以看到对应的程序文件
找到主程序,双击主程序即可将程序打开,弹出功能分布清晰的界面
主界面说明,打开GDA并且将你所要分析apk文件拖拽到软件界面上:
1.查看所有字符串;
2.查看所有使用过的字符串;
3查看所有API;
4.查看AndroidManifest文件;
5.十六进制浏览数据;
6.可疑(恶意行为分析);
7.漏洞静态扫描(尚待实现);
8.展开权限并查看权限所属模块(方法);
9.类及方法,如果出现多个DexClass*表示apk采用mulitdex技术。
10、Dex头,没点击DexClass可展示相应的头,每个色块代表头部不同的区域,鼠标移动在其上面可以看到提示,每个偏移可右键跳转到偏移所在的数据区。
11、申请的权限概览;
12、搜索/访问记录,双击可查看历史访问;
13、点击进入入口函数(method);
14、连接android设备进行内存dump。
如果APP被加固处理,GDA会对加固进行自动识别,显示在Dex头和APK权限之间,如果没有被加固,则不显示。如图:
点击Entry按钮可以进入到APK的入口函数:
在java代码区,可以按F5查看smali汇编代码。
双击一个方法可以进入该方法,查看其代码,X交叉引用查看调用者。
二、快捷键说明
三、辅助工具
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)
四、Android病毒静态分析实例
本节通过一个病毒样本文件来介绍GDA的基本使用方法。
A.概要分析
主要从整体上对APK做一个简单的了解和掌握,以下以一款Android病毒为例来介绍GDA的使用。
1.首先,可以直接将样本拖入GDA,非常快的我们能够看到分析主界面。我们根据主界面判断其是否有加固,如果有加固主界面会显示,如果没有显示代表没有加固。
2.然后可以检查看看该病毒开启了那些敏感权限,从主界面底部可以看到,该病毒开启了不少敏感权限。
3.我们还可以通过点击如下红色标记的工具栏按钮看到该APK的签名信息。
4.可以通过树形控件中AndroidManifest来分析该病毒所使用的Activity,Service,receive等信息。
5.接下来还可以通过树形框中的MalScan来了解该病毒大致的恶意行为。
可以看出该病毒具有很多恶意的操作。行为描述下面的是产生该种类型的恶意行为的实现方法。双击method@可以进入该方法中查看,比如点击进入第二” #读取联系人、短信等信息:”的[method@0001e5]: com.itcast.cn112.m.a
看smali比较费劲,按F5可以查看反编译的代码。如图
可以看出,这个方法中实现了短信箱的读取,具体方法的分析后面介绍。
6.此外概要分析时,还可以通过查看该APK所使用的字符串和API来做分析。其中AllStrings会获取该APK所有的字符串,而AppStrings只会获取APK有效类会用到的字符串,相对来说AppStrings是更有用的字符串。其中string@区域同样支持交叉引用(X),编辑(右键菜单),双击操作。
AllAPI的method@区域支持交叉引用的功能
【 GDA反编译器实现原理:】
GDA的反编译器实现采用了7阶段分析的模式,这也是一种类“ 前端 -反编译-后端”的实现方式,但与传统的反编译器实现上有所差别,同时在算法速度和反编译效果上做一些权衡,当然反编译器时刻都在进行优化和提升之中,由于反编译器的实现较为复杂,需要处理的细节比较多,所以此处仅仅是非常简单的介绍GDA的反编译核心实现,实际上也谈不上是实现原理。
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为单位,并将类和方法进行了分离。
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文