一、1SMALI/BAKSMAL
SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译。
其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。
2 、ANDBUG
Andbug是一款针对Android平台的Dalvik虚拟机的调试工具,工具基于jdwp协议,使用了python封装,其灵活性和可定制性对逆向工程师和开发人员而言可谓是神器级别的安卓安全工具。它与Android的Eclipse插件调试使用相同的接口,其Java 调试线协议(JDWP)和Dalvik调试监视器(DDM)允许用户监视Dalvik虚拟机,检查进程状态。
不同于谷歌自己的Android软件开发工具包调试工具,AndBug不要求源代码。但是,它需要使用python封装,因为对于大多数重要的任务,它需要使用一个脚本断点(scripted breakpoints)的概念,称为“hooks”。
3、ANDROGUARD
androguard (也称Android guard) 是 Android 应用程序的逆向工程,提供恶意软件分析等功能。
特征:使用DAD作为反编译器;可以分析恶意软件;
主要由Python 编写;
支持可视化;
androguard 支持:DEX, ODEX;APK;
Android的二进制XML;Android资源文件;
分解的DEX/ODEX 字节;
DEX/ODEX 文件反编译程序;
4、APKTOOL
APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。它可以完整解包APK,解包后你可以看到 APK 里面的声明文件、布局文件、图片资源文件、由 dex 解包出来的 smali 文件、语言文件等。如果你要汉化、修改界面、修改代码的话,apktool 可以帮你一站式完成。
特征:反编译资源文件到原始格式(包括,,以及XML等);将解码资源重建回二进制APK / JAR;组织和处理依赖于框架资源的APK;Smali调试(中移除,被IdeaSmali取代);协助重复性任务;
5、AFE
AFE(Android Frameworkfor Exploitation)是一个开源项目,运行在Unix-based 的操作系统中,能够用来证明Android操作系统中存在安全漏洞,它还表明Android僵尸网络是能够存在的。使用AFE能够非常容易的自动创建一个Android平台的恶意软件,发现应用软件的漏洞(例如Leaking Content Providers,Insecure FileStorage,Directory Traversal等),以及在受感染的设备上执行任意命令。
AFE包含两个部分,PC端(以下称为AFE)和手机端(以下称为AFEServer)。AFE大部分是完全使用Python编写的。AFE是可扩展的,可以自由添加其他的模块或者将已有的工具移植到AFE框架下。AFEServer是一个在手机上运行的Android应用,用来和AFE的Python界面进行连接,执行AFE发送到手机的命令。
功能:完善的命令行界面;发现应用漏洞;自动化创建恶意应用;
6、DEDEXER
Dedexer是一款反编译dex文件的开源工具。
特征包含:不需要在android模拟器中运行;
能够将dex文件按照java源代码package的目录结构建好了目录,每个class文件对应一个ddx文件;
可作为像jasmin一样的反编译引擎;
7、 ANDROID OPENDEBUG
该工具利用Cydia Substrate将所有的应用程序在设备上运行;
一旦安装任意应用程序就会有一个debugger连接到它们。
注意:该工具只能在测试设备中使用!
8、DARE
Dare是宾州大学计算机系发布的apk逆向工程工具,可以将Android系统中使用的apk文件反编译为JavaClass文件,这些Class文件随后可以通过现有的Java工具(包括反编译)进行处理。目前支持Linux和Mac OS X中使用。
9、 FINO
一款Android动态分析工具
10、 ENJARIFY
Enjarify是由Google推出的一款基于Python3开发,类似dex2jar的反编译工具,它可以将Dalvik字节码转换成相对应的Java字节码,有比dex2jar更优秀的兼容性,准确性及更高的效率。