本帖最後由 WindMark 於 2013-6-2 20:28 編輯
繁化 真的是人外有人 學無止盡 smali的部分 我也不敢說 我完全都懂 小弟只懂了些皮毛
本來是不想出來賣弄的 沒辦法在4樓im641版大給了我經驗2的評分 不好意思白拿了積分2
所以我只好硬著頭皮上了ˋˊ
就我了解的部分 跟各位分享一下 如有錯誤煩請指教...
小弟第一次接觸smali的繁化 是用Sidebar Pro側邊欄練習的 這個軟體在小工具的部分(如 手電筒..)文字就是在smali裡面 這個軟
體用來練習smali的繁化 是最適合的因為簡單 文字也不多..所以建議可以使用英文版的 Sidebar Pro側邊欄 來做第一次的練習
相信大家會想接觸smali的繁化 對於基本繁化應該都有一定程度的基礎了 所以反編譯的部分小弟我就省略了!
1.反編譯apk 就可以看到smali資料夾
2.使用Notepad++尋找 欲修改的文字
3.找到要修改的文字後 先把Notepad++上方的選項 "編碼"裡面 編碼成ANSI碼 改成 編碼成UTF-8(檔首無BOM)
4.修改文字 輸入繁體中文
5存檔前 在把編碼改回原來的 編碼成ANSI碼 (切記 改編碼的程序 別漏了一步 不然回編譯後 會變成亂碼)
6.存檔 回編譯apk
PS:我們只需要查看const-string後面有引號的 ("xxxxxxxx") 英文字
判斷是否可以改的準則如下:
1.可修改的文字第一個字母99%是大寫, 如全小寫的字串大都不可修改
2.含有兩個英文字之間沒有空隔的字串絕不可修改
3.字串含有特殊字元, 如底線_ 斜畫 /或類似指令樣式的絕不可修改
10樓的大大 說的亂碼問題 簡體字 Smali回編譯後 就是亂碼 所以沒辦法 用搜尋的是找不到原來的簡體文字的!
只能使用英文版 來進行smali的修改 假如是繁體字 雖然沒有亂碼 但是會變成\u5237\u65b0這種類型的
代碼 所以是沒辦法使用 簡體版和英文版 兩個版本 來做文字位置的比對 只能使用英文版 一個字一個字 慢慢找
或許有解決方式 但是我不知道 就要靠各位自行找出辦法囉!
如果各位大大 有更好的方式 希望能一起分享 以上我分享的 只是我個人的心得 也沒人會願
意教 只能自己不斷的爬文 試驗找出來的心得!!
請教艾力克版大 會是最好的選擇 他才是真正的高手喔!!我第一次繁化smali也是艾力克版大 有指點了我一下!!
希望各位可以把繁化心得 一起分享 這樣APK.TW的繁化技術才會愈來愈好 不要自己學會了就好 也不願意分享也懶的教人!!
如果有問題 不用客氣可以發訊息給我 基本上我懂得 我了解的 我都會說 只是回覆時間不一定 我不可能整天守在電腦前 請各位見諒!! |