使用kali的工具集反編譯apk


編寫時間 2019-04-29 00:51:38

因為想查看app的一些api以及簽名算法,所以試試反編譯工具。  
首先上傳apk,然后命令行打開所在目錄。
現在用起點apk做個測試

第一步使用apktool

apktool d -f qidian.apk -o apktool

root@kali:~/文檔/qidian# apktool d -f qidian.apk -o apktool
I: Using Apktool 2.3.4-dirty on qidian.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes4.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

這一步主要是可以查看apk的媒體文件

如果要java代碼

第二步 把apk文件重命名為zip文件,解壓,將解壓的classes.dex文件取出,使用d2j-dex2jar來嘗試輸出jar

d2j-dex2jar classes.dex

root@kali:~/文檔/qidian/dex/dex2jar-2.0# d2j-dex2jar classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
Killed

好的,工具出錯也是正常的,出錯就找原因吧,首先它輸出的22字節的jar文件,肯定是有問題的,其次用windows平台的dex2jar工具也出錯,所以不是工具的問題,應該說dex文件有問題?
在dex2jar官網的討論里,看到了類似的問題miss inner class

然后使用jd-gui工具,打開dex.jar,提出源文件即可查看代碼  
使用這個工具提取的java代碼,類的名字好像都是abcd什么的

終於成功逆向了一次數字簽名的實現,第一次看到數字簽名的時候,完全不知道是什么,那時候以為都是固定的,直到一直失敗才發現,還有動態生成的簽名。那時候挺絕望的2333  
無論如何,天道酬勤,坑總是可以過的


2019/7/8 更新  
因為dex2jar太老,一些dex無法逆向,這里發現一個新項目enjarily  
使用python3逆向dex文件


免責聲明!

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



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