使用apktool分析Android程式
阿新 • • 發佈:2018-11-02
使用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直接拖入虛擬手機介面即可完成安裝。安裝後執行程式即可發現,無論輸入什麼,都會顯示註冊成功。
到此反編譯結束。