26款优秀的Android逆向工程工具

1. SMALI/BAKSMALI

SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的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 可以帮你一站式完成。

特征:

反编译资源文件到原始格式(包括resources.arsc,classes.dex,9.png以及XML等);

将解码资源重建回二进制APK / JAR;

组织和处理依赖于框架资源的APK;

Smali调试(2.1.0中移除,被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. BYPASS SIGNATURE AND PERMISSION CHECKS FORIPCS

该工具通过使用Cydia Substrate为IPCs提供绕过签名和权限检查服务。

关于Cydia Substrate

Cydia Substrate是一个代码修改平台。它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的。

下载地址:传送门

7. ANDROID OPENDEBUG

该工具利用Cydia Substrate将所有的应用程序在设备上运行;一旦安装任意应用程序就会有一个debugger连接到它们。

注意:该工具只能在测试设备中使用!

下载地址:传送门

8. DARE

Dare是宾州大学计算机系发布的apk逆向工程工具,可以将Android系统中使用的apk文件反编译为JavaClass文件,这些Class文件随后可以通过现有的Java工具(包括反编译)进行处理。目前支持Linux和Mac OS X中使用。

下载地址:传送门

9. DEX2JAR

dex2jar是一个能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具集合。包含以下几个功能

dex-reader/writer:用于读写 DalvikExecutable (.dex) 文件格式. 包含一个简单的API(与ASM相似);

d2j-dex2jar:执行dex到class的文件格式转换;

smali/baksmali:与smali工具功能一致,但是对中文更友好;

其他工具:字符串解密

下载地址:传送门

10. ENJARIFY

Enjarify是由Google推出的一款基于Python3开发,类似dex2jar的反编译工具,它可以将Dalvik字节码转换成相对应的Java字节码,有比dex2jar更优秀的兼容性,准确性及更高的效率。

下载地址:传送门

11. DEDEXER

Dedexer是一款反编译dex文件的开源工具。特征包含:

不需要在android模拟器中运行;

能够将dex文件按照java源代码package的目录结构建好了目录,每个class文件对应一个ddx文件;

可作为像jasmin一样的反编译引擎;

下载地址:传送门

12. FINO

一款Android动态分析工具。

下载地址:传送门

13. INDROID

该项目的目的是证实在nix 系统a.k.a ptrace函数上的一个简单的调试功能可以被恶意软件滥用,在远程进程中注入恶意代码。Indroid为基于ARM的 nix设备提供创建远程线程(CreateRemoteThread)。

如果你想更深入地了解该框架,可以点击如下链接:

观看Defcon 19相关视频:传送门

查看报告详情:传送门

CreateRemoteThread是创建一个在其它进程地址空间中运行的线程(也称创建远程线程)。

14. INTENT SNIFFER

Intent Sniffer工具可以在任何运行谷歌Android操作系统的设备上使用。在Android平台中,Intent是应用程序之间进行通信的最常用的方式之一,Intent Sniffer工具实现监控运行时路由的广播Intent,也就是在系统上的应用程序之间发送的Intent。它并不监控显式广播的Intent,而是默认为(大多数情况下)无优先权的广播。

该工具也能够针对那些基于应用反射和动态审查安装程序的Intent来动态升级扫描的Action和Category。

下载地址:传送门

15. INTROSPY

Introspy是一款黑盒测试工具,帮助我们理解Android应用程序在运行时的行为,协助我们识别潜在的安全问题。

下载地址:传送门

16. JAD

JAD是一款Java反编译工具,可以通过命令行把Java的class文件反编译成源代码。

下载地址:传送门

17. JD-GUI

JD-GUI是一个独立的显示“.class” 文件Java源代码的图形用户界面工具。用户可以使用JD-GUI浏览和重建源代码的即时访问方法和字段,以代码高度方式来显示反编译过来的代码。

下载地址:传送门

18. CFR

CFR(Class File Reader),Java反编译器,支持Java 8的lamda表达式,Java 7 的字符串转换等,开发者为LeeBenfield。

下载地址:传送门

19. KRAKATAU

Krakatau开发者为Storyyeller,目前主要包含三个工具——java类文件的反编译和反汇编工具,创建类文件的汇编工具。

下载地址:传送门

20. PROCYON

Java反编译器和元编程框架Procyon可以在反编译工具中立足,显然是具有其独到优势的。它有进行控制流分析,以及类型推断,也支持java8特性,其开发者为Mike Strobel。

下载地址:传送门

21. FERNFLOWER

Fernflower是一个对Java程序进行反编译分析的利器。目前正处于开发阶段,如有bug报告和改进建议可发送邮件至fernflower.decompiler@gmail.com

下载地址:传送门

22. REDEXER

Redexer是Dalvik 字节码(用于安卓APP)分析框架,它是一套基于OCaml的实用工具,帮助程序员解析,操作Dalvik虚拟机。Redexer由来自马里兰大学帕克分校的PLUM组织开发完成,主要作者是:Jinseong Jeon,Kristopher Micinski以及Jeff Foster。

关于OCaml

OCaml是Caml编程语言的主要实现,由XavierLeroy,Jérme Vouillon,Damien Doligez,Didier Rémy及其他人于1996年创立。

下载地址:传送门

23. SIMPLIFY安卓反混淆工具

Simplify安卓反混淆工具实际上是通过执行一个APP来解读其行为,随后尝试通过优化代码来实现行为一致,但是更容易被人理解的目的。每一种优化类型都是非常简单通用的,所以无论用的是什么特殊类型的混淆技术都没关系。其主要由3部分组成:smalivm,simplify以及demo app。

下载地址:传送门

24. BYTECODE VIEWER

Bytecode Viewer是一个高级的轻量级Java字节码查看器,GUIProcyon Java 反编译器, GUI CFR Java 反编译器, GUI FernFlower Java 反编译器, GUI Jar-Jar, Hex 查器看, 代码搜索器, 调试器等。

这款开源工具完全采用Java编程语言进行开发。这款工具由Konloch设计并开发,目前也主要是Konloch正在维护这一开源项目。

在这款工具中,还设计有一个插件系统,它可以允许你与加载的类文件进行交互。比如说,你可以写一个字符串的反混淆工具,恶意代码搜索器,或者其他的一些你所能想到的东西。

你不仅可以使用一个他人预先编写完成的插件,而且你也可以使用你自己写的插件。不仅如此,它还支持使用Groovy脚本,Python脚本,以及Ruby脚本。当插件状态被激活之后,它会将每一个单独的类文件加载进BCV中,这样一来,用户就可以使用ASM来控制这些加载的类文件了。

下载地址:传送门

25. RADARE2

radare2是一款开放源代码的逆向工程平台,它可以反汇编、调试、分析和操作二进制文件。

主要特点:

多平台多架构的;

高度脚本;

十六进制编辑器;

IO包裹;

文件系统支持;

调试器支持等;

下载地址:传送门

26. JEB FOR ANDROID

JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。

特征表现为:

全面的Dalvik反编译器;

交互性;

可全面测试APK文件内容;

多平台(支持Windows, Linux和Mac等操作系统)

官网地址:传送门

下载地址:传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,520评论 25 707
  • 我是大学本科毕业,保险专业科班出生的对口型人员,顺理成章的成为了一名保险从业人员。但细说下去,我是一名 保险经纪人...
    officiallyman阅读 4,565评论 4 8
  • 昨天和一个素未蒙面的大姐聊了很久,把埋在心底很久的事情说出来,觉得有的时候真的不同的人对于相同的事情感觉就是不一样...
    李苏珊阅读 323评论 0 0
  • 明天就上去广州了,今晚要早睡。想自己一路走来,一路布局,若是早点专攻一处,如今早已是功成名就。无论是专攻大学生实习...
    公子F阅读 225评论 0 1
  • 字符实体 在 html 中对空格/回车/tab 不敏感,会把多个空格/回车/tab 当作一个空格来处理 什么是字符...
    GodlinE阅读 353评论 0 0