1. 程式人生 > >Android安卓APK反編譯分析、簡單修改內容、二次打包簽名

Android安卓APK反編譯分析、簡單修改內容、二次打包簽名

一、需求:想要修改一個apk裡面一串字串

環境:

dex2jar----https://github.com/pxb1988/dex2jar/ JD-GUI----http://jd.benow.ca/

jdk1.8.0環境

二、先反編譯解包分析:

(明確要修改哪裡的話可以跳過這步,我做這一步是為了看到部分java原始碼來分析他的邏輯流程,以及需要修改哪一塊)

首先解壓APK、把classes.dex搗鼓出來

然後用./d2j-dex2jar.sh classes.dex (注意先給定本目錄下所有指令碼執行許可權 chmod +x * )

把dex反編譯成*.jar檔案

用JD-GUI開啟之後分析一波

得出結論:我要修改的字串包在ShowActivity.class裡面

三、修改內容:

首先命令列下:apktool d 我的軟體.apk 

得到一個包資料夾,去並找到同名的.smali 檔案,因為.smali檔案中文字採用unicode編碼。需使用sublime開啟,搜尋文字unicode編碼替換成要修改文字的unicode即可。

注:unicode<>中文轉換工具:http://tool.chinaz.com/tools/unicode.aspx

修改完後儲存smali檔案,執行命令打包:apktool b 包資料夾名 -o output.apk

接下里就生成一個output.apk,注意這個apk目前沒有被簽名,是不能被安裝到手機裡面的。

四、簽名

注意:只能識別檔案*.jks (也就是記得把金鑰字尾改一改)

下載來解壓 然後命令列裡執行:java -jar apkSign.jar

笨蛋操作就能簽名完了

Over.

純手打,累。有用請點贊關注