反編譯 APKTool jadx [MD]


博文地址

我的GitHub 我的博客 我的微信 我的郵箱
baiqiantao baiqiantao bqt20094 baiqiantao@sina.com

補充一個利器:jadx

GitHub 首頁 
下載 jadx-1.1.0.zip

核心功能:Dex to Java decompiler (將Dex轉為Java的反編譯器)

最佳實踐

官方 readme 寫的比較啰嗦,如果只想用其核心的功能,只需按如下步驟使用即可。

1、去 GitHub 下載:所有 releases 版本,例如 jadx-1.1.0.zip

 2、解壓之后,進入jadx-***/bin目錄,雙擊jadx-gui.bat打開 GUI 版本

  • 其中 jadx.bat 為命令行版本,啟動命令行版本時可以帶大量的參數,詳細使用方式請看官方文檔。
  • 也可以進入jadx-***/lib目錄,雙擊jadx-gui打開 GUI 版本。
  • lib 目錄里面全是各種依賴的第三方jar包(比如常見的gson、rxjava、asm、guava),以及本工具自己的第一方jar包(jadx-cli、jadx-core、jadx-gui)。

3、選擇apk文件,等個一兩分鍾即反編譯完成了,然后點擊菜單導航->搜索文本,再等個三五分鍾,就可以全文搜索了。

以前在AS中,我們只能全文搜索源碼,依賴的jar包、aar等是搜不到的,通過這種方式,我們可以搜到包含jar包、aar中的任何內容。

經過混淆的APP,反編譯出來的代碼肯定也是混淆的。

官方文檔的一些介紹

jadx - Dex to Java decompiler

Command line and GUI tools for produce Java source code from Android Dex and Apk files

Main features:

  • decompile Dalvik bytecode to java classes from APK, dex, aar and zip files
  • decode AndroidManifest.xml and other resources from resources.arsc
  • deobfuscator(去混淆) included

jadx-gui features:

  • view decompiled code with highlighted syntax(語法高亮)
  • jump to declaration(點擊跳轉到方法、類聲明的地方)
  • find usage
  • full text search(全文搜索)

See these features in action here: jadx-gui features overview

打開

After download unpack zip file go to bin directory and run:

  • jadx - command line version
  • jadx-gui - UI version
  • On Windows run .bat files with double-click

Note: ensure you have installed Java 8 or later 64-bit version.

常用反編譯工具簡介

最佳實踐

主要使用Android逆向助手來操作:

  • 點擊反編譯apk,完成后res下的所有資源就都可以正常使用了,相當於apktool的功能------目前已失效,但是直接用rar解壓是可以的
  • 點擊提取dex,可以提取出apk文件中的.dex文件,如果有多個.dex文件,則只會提取第一個;建議手動把.apk更改后綴后解壓並拷出.dex文件
  • 點擊dex轉jar,相當於dex2jar的功能
  • 點擊jd打開jar,可以自動使用jd-gui打開jar文件,現在已經可以查看源碼了
  • jd-gui中不能修改源碼,可點擊把所有源碼保存起來后就能修改了
  • 可使用 AXMLPrinter2 提取、轉化XML文件

常用工具介紹

常用工具:

  • apktool:提取res目錄下的【資源】文件(drawable、layout、anim、color等)
  • dex2jar:將【.dex】文件(可執行文件)轉化為【.jar】文件
  • jd-gui:將編譯后的【.jar】或【.class】文件以【.java】源碼格式查看
  • AXMLPrinter2,作用:在apktool搞不定的情況下獲取xml布局文件--目前apktool已失效,但本工具還能用
  • XJad:和jd-gui作用類似,是一款Java源程序反編譯軟件
  • Android逆向助手:整合以上工具的而成的一個圖形化工具集

官網及下載地址:

apktool

apktool的使用:apk反編譯生成程序的源代碼和圖片、XML配置、語言資源等文件

  • 解壓得到3個文件:aapt.exe,apktool.bat,apktool.jar
  • 將需要反編譯的APK文件放到該目錄下
  • 打開命令行界面 ,定位到apktool文件夾,輸入以下命令:【apktool.bat d -f】【test.apk bqt】(test.apk是要反編譯的APK文件全名,可以直接拖拽過來,bqt為反編譯后存放的目錄)
  • 成功后發現在文件夾下多了個bqt文件夾,點擊便可以查看該應用的所有資源文件了。
  • 如果你想將反編譯完的文件重新打包成apk,輸入apktool.bat b test,完成后在test文件下便多了2個文件夾:build和dist(存放着打包出來的APK文件)

官方的apktool工具只包含以下三個文件,只能使用CMD命令執行 

不過目前有很多重新打包后的版本,如下 

dex2jar、jd-gui、XJad

dex2jar,jd-gui,XJad的使用

  • 首先將apk文件后綴改為zip或rar並解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的
  • 然后將classes.dex復制到d2j-dex2jar.bat(名稱可能不太一樣)所在目錄文件夾中
  • 在命令行下定位到d2j-dex2jar.bat所在目錄,運行ded2j-dex2jar.bat classes.dex
  • 最后,進入jdgui文件夾雙擊jd-gui.exe,打開上面生成的jar包classes_dex2jar.jar,即可看到源代碼了
  • 不過,被混淆過的類文件名稱以及里面的方法名稱都會以a,b,c....之類的樣式命名

XJad簡介

  • XJad是基於Jad核心的Java源程序反編譯軟件,內置Jad1.5.8e2
  • 可處理多個*.class文件,可以處理文件夾內的所有文件,甚至可以處理*.jar文件;
  • 帶有多頁面文本編輯器,也可集成在資源管理器中,隨時點擊右鍵都可進行操作;
  • 支持java語法的高亮顯示;

XJad使用說明

  • 打開一個或者多個*.class文件,XJad反編譯后,重命名為*.java文件,保存至當前文件夾,並在編輯器中打開查看;
  • 打開一個文件夾,XJad將該文件夾下所有*.class文件進行反編譯,並保存至該文件夾下,依據包路徑信息生成文件夾路徑,如com.spring.framework.*,將建立com\spring\framework的文件夾結構;
  • 打開一個*.jar文件,XJad將該Jar文件中的所有*.class文件解壓縮到臨時目錄並進行反編譯,並將源文件帶包路徑信息保存至當前文件夾下名稱為“~” + *.jar的文件夾中;

AXMLPrinter2

作用:目前很多APP已經混淆,使用APKTOOL已經提取不出資源文件,使用這個工具可以將二進制的xml布局文件轉化為正常的形式

弊端:需要一個一個的轉換,且轉換出來后有大量需要修改的地方

下載地址 網上流傳的部分版本可能不能使用

使用步驟:

  • 更改apk后綴名為.rar並解壓
  • 找到解壓后res目錄下的要參考的布局文件,並將此文件復制到和AXMLPrinter2同目錄下
  • 打開cmd並定位到此目錄下
  • 執行命令java -jar AXMLPrinter2.jar bqt.xml > bqt2.xml 便可把二進制的 bqt.xm文件反編譯成可以閱讀的bqt2.xml文件

eclipse 安裝 jd-gui 插件

eclipse安裝使用JD插件:

  • Download and unzip the JD-Eclipse Update Site,
  • Launch Eclipse,
  • Click on "Help > Install New Software...",
  • Click on button "Add..." to add an new repository,
  • Enter "JD-Eclipse Update Site" and select the local site directory,
  • Check "Java Decompiler Eclipse Plug-in",
  • Next, next, next... and restart Eclipse.Installation

注意,因為眾所周知的原因,不要選擇聯網更新之類的操作 

2016-04-07


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM