1. 程式人生 > >Android逆向筆記(1)---工具篇之apktool

Android逆向筆記(1)---工具篇之apktool

apktool 

官網:http://ibotpeaches.github.io/Apktool/

說明:apk的反編譯工具,是在samli工具的基礎上進行封裝的工具,反編譯資源接近原始形式(包括resources.arsc,classes.dex,9.png。和XML)

             目前(2016年1月)有兩個版本  1.x 和2.x。

             2.x要求java為JDK7,並需要配置好Java的環境變數。

             2.x的語法   

apktool d test.apk    //反編譯
apktool b test        //編譯

配置:

      1、從官網下載apktool_2.0.3.jar 並改名為 apktool.jar

      2、建立一個apktool.bat,裡面內容為

@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
java -jar -Duser.language=en "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
     3、拷貝一份Android的SDK中的aapt.exe(該工具不同的SDK所在的位置不一樣 最近的在build-tools老一些在tools或platform-tools目錄中)
     建立一個Crackme資料夾,並將三個檔案移動到該目錄下,只要配置就好。

注意:

   apktool反編譯時經常會出現下面的資訊

1.Input file  was not found or was not readable.
2.Destination directory (C:\Users\user\a) already exists. Use -f switch if you want to overwrite it.
3.Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars c fil..........

解決方案:
1和2是因為apktool升級到2.0以上時,使用方式已經替換,格式為:apktool d [-s] -f <apkPath> -o <folderPath>,引數具體的意思可以直接打apktool回車(windows)檢視幫助
3是因為apktool版本過低導致,請升級到最新版本,地址:http://ibotpeaches.github.io/Apktool/ 或https://bitbucket.org/iBotPeaches/apktool/downloads/