1. 程式人生 > >使用apktool分析Android程式

使用apktool分析Android程式

使用apktool分析Android程式

(作者:Baron_wu 禁止轉載)

Installation for Apktool

  •Windows:
  
 1. Download Windows wrapper script (Right click, Save Link As apktool.bat)
 2. Download apktool-2 (find newest here)
 3. Rename downloaded jar to apktool.jar
 4. Move both files (apktool.jar & apktool.bat) to your Windows directory (Usually C://Windows)
 5. If you do not have access to C://Windows, you may place the two files anywhere then add that directory to your Environment Variables System PATH variable.
 6. Try running apktool via command prompt


•Linux:
1.Download Linux wrapper script (Right click, Save Link As apktool)
2.	Download apktool-2 (find newest here)
3.	Rename downloaded jar to apktool.jar
4.	Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
5.	Make sure both files are executable (chmod +x)
6.	Try running apktool via cli


•Mac OS X:
1.	Download Mac wrapper script (Right click, Save Link As apktool)
2.	Download apktool-2 (find newest here)
3.	Rename downloaded jar to apktool.jar
4.	Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
5.	Make sure both files are executable (chmod +x)
6.	Try running apktool via cli

環境變數的新增:新增apktool的路徑到系統path中。
在這裡插入圖片描述
之後開啟終端輸入apktool檢測安裝是否成功。
在這裡插入圖片描述
若安裝成功,則接下來把之前寫好的application放入到apktool檔案路徑下,然後開啟終端進入該目錄下,開始反編譯apk檔案。輸入命令:apktool d Appcracking.apk
在這裡插入圖片描述
反編譯後會生成一個資料夾:
在這裡插入圖片描述
開啟res\values\string.xml檔案可以看到所設定的flag:
在這裡插入圖片描述
之後再開啟同文件夾下的public.xml檔案,可以看到fail的id:
在這裡插入圖片描述
在smali資料夾中的所有檔案中尋找0x7f0b0028(每個人的都不一定一樣),結果如下:
在這裡插入圖片描述
在上邊有如下兩行程式碼:


在這裡插入圖片描述
修改nez為eqz,之後編譯smali檔案。
輸入命令:apktool b Apkcracking

在這裡插入圖片描述
編譯成功後會在目錄下生成dist目錄,裡面存放著編譯成功的APK檔案。
在這裡插入圖片描述
之後便對其進行數字簽名,將生成的apk拖入signapk資料夾下:
在這裡插入圖片描述
Dos視窗下進入dist資料夾,輸入命令:“signapk AppCracking.apk”,簽名成功後結果如圖所示,並且會在同一目錄下生成signed.apk檔案。(我是直接使用的自動簽名工具,所以這種方法沒有親測,如有不對請自行解決)
在這裡插入圖片描述
將簽名後的signed.apk檔案安裝到手機上,注意,安裝前需要將之前測試安裝的相同的App解除安裝掉,不然會提示手機上已安裝了存在簽名衝突的同名數據包,導致這個APK 檔案無法安裝。

在這裡插入圖片描述
將簽名後的apk直接拖入虛擬手機介面即可完成安裝。安裝後執行程式即可發現,無論輸入什麼,都會顯示註冊成功。
在這裡插入圖片描述
到此反編譯結束。