Android安卓APK反編譯分析、簡單修改內容、二次打包簽名
阿新 • • 發佈:2018-12-16
一、需求:想要修改一個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.
純手打,累。有用請點贊關注