【Android】記安卓反編譯

一個小白開始準備安卓反編譯了
注意apk是未加固過的

  1. 查到反編譯需要這幾個工具apktool:aapt.exe,apktool.bat,apktool.jar;
  2. 在https://ibotpeaches.github.io/Apktool/install/下載apktool
    在這裏插入圖片描述
  3. 上面都處理好以後,打開cmd,切換到apk所在文件夾,輸入apktool d name.apk可以看到,也可以用命令apktool d -f [待反編譯的apk] -o [反編譯之後存放文件夾]
  4. 可以看到目錄下多了一個文件夾
    在這裏插入圖片描述
  5. 文件夾下包含一個smile文件夾,這裏面存的就是jar形式的java代碼
  6. 把你的apk後綴名改爲zip,然後解壓後,就會發現有個classes.dex,這裏面就是java源碼了
  7. 我們需要吧dex文件轉爲jar格式的文件,用到了一個工具叫dex2jar(下載鏈接),我們把它下載來後解壓(下載來後是zip文件)
  8. 打開cmd進入dex的解壓目錄,輸入命令d2j-dex2jar.bat classes.dex(不在同一個文件夾下,寫出classes.dex的正確路徑)
    在這裏插入圖片描述
  9. 完成後,dex2jar-2.0目錄下就會多了個classes-dex2jar.jar文件,這個就是我們需要的jar文件,接下來就是如何查看java代碼了,這裏筆者借用一個工具jd-gui(下載鏈接),下載完解壓(這裏選擇window平臺),然後用它打開classes-dex2jar.jar就可以了,如果你的apk經過混淆,那麼看到的都是a、b之類的

apk加固後反編譯AndroidManifest.xml:
把加固後apk中包藏的meta字段反編譯處理,提取查看加固後的值。
首先需要下載工具AXMLPrinter2.jar。我把AXMLPrinter2.jar及其源代碼文件放到下載鏈接

拿到一個加固後的apk後,把它的後綴改成.zip,即變成app.zip,然後把它當做一個普通壓縮文件解壓,解壓後就會在裏面找到AndroidManifest.xml文件,顯然此時的AndroidManifest.xml是經過加固加密的,需要用AXMLPrinter2.jar將其逆向復原。通過命令:java -jar AXMLPrinter2.jar AndroidManifest.xml > ok.xml AndroidManifest.xml即爲加固後加密的文件,ok.xml是經過逆向工程後恢復的AndroidManifest.xml文件,此時的ok.xml就可以直接打開查看。

https://www.2cto.com/kf/201606/515799.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章