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

bigsharkyc 8年前發布 | 65K 次閱讀 Java 安卓開發

工欲善其事必先利其器,好的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等操作系統)

官網地址: 傳送門

下載地址: 傳送門

*原文鏈接: hackerlists *、米雪兒編譯,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)

 

來自:http://www.freebuf.com/sectool/111532.html

 

 本文由用戶 bigsharkyc 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!