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閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,732評論 25 708
  • 我是大學本科畢業,保險專業科班出生的對口型人員,順理成章的成為了一名保險從業人員。但細說下去,我是一名 保險經紀人...
    officiallyman閱讀 4,619評論 4 8
  • 昨天和一個素未蒙面的大姐聊了很久,把埋在心底很久的事情說出來,覺得有的時候真的不同的人對于相同的事情感覺就是不一樣...
    李蘇珊閱讀 341評論 0 0
  • 明天就上去廣州了,今晚要早睡。想自己一路走來,一路布局,若是早點專攻一處,如今早已是功成名就。無論是專攻大學生實習...
    公子F閱讀 231評論 0 1
  • 字符實體 在 html 中對空格/回車/tab 不敏感,會把多個空格/回車/tab 當作一個空格來處理 什么是字符...
    GodlinE閱讀 371評論 0 0