標籤:立足 顯示 作業系統 hub 封裝 ack table linux def
26款優秀的Android逆向工程工具
工欲善其事必先利其器,好的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虛擬機器,檢查進程狀態。
不同於Google自己的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工具可以在任何運行GoogleAndroid作業系統的裝置上使用。在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報告和改進建議可發送郵件至[email protected]
:傳送門
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等作業系統)
官網地址:傳送門
:傳送門
26款優秀的Android逆向工程工具