鍍金池/ 問答/C++  Android/ 關(guān)于android反編譯的疑問

關(guān)于android反編譯的疑問

android反編譯后為啥有的代碼就變成數(shù)字了,本身應(yīng)該用的是r.java的嗎,源代碼沒有混淆,如果反編譯確實(shí)就這樣了,那有什么辦法變成正常代碼嗎?還是只能手動(dòng)修改。作為服務(wù)端的同學(xué)對(duì)android不是很懂,請(qǐng)教各路adnroid大神!
其它:
反編譯工具:
apktool
dex2jar
jd-gui
編譯后如下圖:

圖片描述

回答
編輯回答
夏木

這些數(shù)字并不是代碼,是類似 R.id.xxx,R.layout.xxx 之類的,本身就是 int 值,代表資源id

2017年2月17日 20:30
編輯回答
我以為

這種情況并不只針對(duì) Android,這是 Java 在編譯期做的一個(gè)優(yōu)化叫"常量折疊"。暫時(shí)沒有發(fā)現(xiàn)有什么方法把他變成正常代碼。反編譯工具可以考慮下 AndroidKiller 和 jeb,內(nèi)部集成了很多工具(包括你前面所說的),可以大大簡(jiǎn)化安卓應(yīng)用逆向過程中各類繁瑣工作。

2017年10月3日 13:32