先編寫一個Android程序,然後進行破解吧
程序地址:地址
流程:
1
用unzip命令將apk文件中的classes.dex文件取出來,命令如下:
unzip xxx.apk classes.dex //會解壓該文件到當前目錄
記得要cmd移動至該目錄下
接下來進行對apk反編譯res…\string.xml,可以看到一個“unsuccessed”。通過public.xml可以看到對應的id “0x7f0b002b”。
2
用IDA Pro對該dex文件進行靜態分析
用快捷鍵ALT+T 搜索文本,輸入0x7f0b002b。
轉換成文本視圖
可以看到這一行,CODE:0011B75A
然後點擊16進制視圖,移動至這一行
(這裏原本是39 …我改了38了。39對應的是if-nez,38對應的是if-eqz )
點擊左上角的編輯,選擇單字節更改方式,改完之後在按修補程序應用到輸入文件。
3
修改後的dex文件,DexHeader頭部的checksum與signature字段是錯誤的。所以需要修正:
d2j-dex-recompute-checksum -f classes.dex
命令執行後,會在當前目錄下生成修正的文件,classes-rechecksum.dex。
然後將其改爲classes.dex,然後將apk改爲zip,將修正後的classes.dex替換裏面的。然後刪除裏面的META-INF文件(不是解壓後刪除),直接在zip界面操作。
然後改回apk後綴。然後對apk進行簽名。可以使用 ApkToolBox 進行簽名(用別的也可以)。