反編譯系列第三篇魏身,前兩篇文章在這里疯淫。
第一篇 Apktool安裝
第二篇 Apktool 基本使用方法
App 漢化
App漢化主要是修改資源文件形帮,主要部分在values 文件夾中string文件,還有少部分會(huì)在 Java 代碼中吧寺。下面以漢化CrackMe 為例說明梗逮。
軟件截圖如下
彈窗有一部分已經(jīng)是漢字了隅津,不過不影響我們理解诬垂。
1.使用Apktool 反編譯 CrackMe
apktool d Crackme.apk
反編譯之后,會(huì)在當(dāng)前路徑下生產(chǎn)Crackme 文件伦仍。切換到Crackme 文件夾下结窘,目錄如圖
找到res 文件夾下的 strings.xml,修改對(duì)應(yīng)的語言為漢字即可。
同時(shí)到 menu目錄下充蓝,看是否還有需要修改的文字隧枫。
我們還注意到,Dialog彈窗的Title 為英文谓苟,其他地方為漢字官脓,在xml 中,沒有搜索到 congratulations 的信息涝焙,我們猜測卑笨,這個(gè)字符串定義在Java代碼中。我們切換到smali 文件夾下仑撞,打開MainActivity.smali,找到onClick 事件執(zhí)行的地方赤兴。
可以看到這里,直接把 congratulations 賦值給 v1,緊接著調(diào)用AlertDialog的setTitle 方法派草。
2.打包Crackme
執(zhí)行下面的命令
apktool b crackme -o crackme_unsigned.apk
當(dāng)前目錄下會(huì)生成 crackme_unsigned.apk,這個(gè)是沒有簽名的apk 文件搀缠,還不能安裝到手機(jī)上。
3.重新簽名apk
如何生成簽名文件這里不再說明近迁,需要的可以自行搜索,我習(xí)慣使用debug.keystore,這里以debug.keystore 為例簸州。
3.1獲取debug.keystore
Android Studio 在 Mac OS 上 鉴竭,用戶home目錄下會(huì)生成 .android 的隱藏文件夾,里面有 debug.keystore岸浑,復(fù)制到CrackMe 所在目錄搏存,方便使用。
3.2二次簽名
簽名使用的是jarsigner命令,debug.keystore 的默認(rèn)alias 是 androiddebugkey,密碼是 android,這兩個(gè)簽名的時(shí)候必須要有的矢洲。
執(zhí)行下面這個(gè)命令
jarsigner -keystore debug.keystore -signedjar crackme_s.apk crackme_unsigned.apk androiddebugkey
-keystore ** 指定使用的簽名文件璧眠,-signedjar** 指定簽名后的文件輸出結(jié)果,后面緊跟著是 要簽名的 apk ,最后是 簽名文件的 alias
命令執(zhí)行成功之后,會(huì)提示輸入密碼责静,輸入 android袁滥,回車,沒有意外灾螃,apk 的二次簽名就完成了题翻。
下面安裝是我們漢化的app 打開看下。
就這么簡單腰鬼,app的漢化與二次簽名就完成了嵌赠。