Android安卓APK反编译逆向
關于安卓APK程序的逆向比WindowsPE文件的逆向要簡單太多了
1.安卓的APK程序其實就是一個zip,可以用winrar打開,解壓后會看到很熟悉的目錄,還有AndroidManifest.xml文件,各種資源和圖片2.xml用記事本打開,會看到有亂碼,所以需要使用AXMLPrinter2.jar工具來進行處理一下,命令如下:
java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt
這時打開AndroidManifest.txt,就會看到和源碼里差不多了,也沒亂碼了.
3.APK的所有.java代碼是編譯到classes.dex文件里的,所以要想知道程序的操作流程和具體功能,必須得反編譯這個文件,使用baksmali.jar工具
java -jar baksmali.jar -o classout/ classes.dex執行完成后,生成一個classout目錄,進去找到android目錄,.smali,就對應.java的代碼了,咱們看.small里的代碼就行了,雖然不是標準的java代碼,但看習慣之后就很簡單了,起碼比Windows的匯編要簡單太多了...
4.最后,咱們通過反編譯之后,可以改代碼改資源,改完之后,還得編譯回去,使用smali.jar工具
java -jar smali.jar classout/ -o classes.dex
這樣弄好之后,再塞進那個apk里,這樣程序還是可以運行的,呵呵!
5.有時候AXMLPrinter2.jar不一定能處理好xml,會報錯,據說是因為清單文件minSdkVersion大于7,咱們可以用APKTool
APKTool很簡單,就是三個文件(aapt.exe、apktool.bat、apktool.jar)
apktool d <file.apk> <dir> //反編譯
apktool b <dir> ? ? ? ? ? ? ? ? ?//重新編譯
12點多了,好困啊,睡覺了.
總結
以上是生活随笔為你收集整理的Android安卓APK反编译逆向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: adb启动失败 ADB server d
- 下一篇: 搜索引擎之战