我知道在Proguard中,建議您保留R內部類的字段名稱,如ID。因爲ProGuard不處理佈局xml文件。你將最終損壞的鏈接模糊R.id類有或沒有proguard
但有遠通過其他手段來混淆類,如R $ ID,即使它涉及它傳遞給ProGuard的前這樣做,通過螞蟻。
我問這個,因爲如果你有一個按鈕,一個id btnSaveArticle,黑客就變得太容易掌握什麼樣的代碼周圍被看名字做。
是否有可能將所有源代碼(包括資源文件)複製到另一個文件夾,並使用ant來運行regex來更改R.ids的名稱以及更改它們在佈局xml文件中出現的位置,然後以某種方式運行生成重新創建R類?
或者你可以創建翻譯類如TR然後在R.class
例如,它映射到田間地頭。
TR.btnSaveArticle = R.id.DHTXM;
其中DHTXM的含義較少,可以在佈局XML中使用。但是在代碼中你總是提到TR.btnSaveArticle,它會被proguard混淆。
有沒有辦法做到這一點,還是我在浪費時間?
如果你有相當多的管制,這需要時間去身影所有。看到所有混淆名稱的源文件會讓偶然的黑客不願意破解。我明白你的意思,但我仍然無法理解黑客可以獲得Android應用程序的全部源代碼的事實。 – pt123
@ p123:「如果你有很多控制,就需要花時間去考慮所有這些控制因素 - 」在你自己的承認中,他們不需要「把所有這些控制」,只有像「保存文章「,這些內容與他們試圖對您的應用執行的任何操作相關。 「看到一個包含所有混淆名稱的源文件會讓偶然的黑客不願意破解」 - 僅僅是愚蠢的黑客。 – CommonsWare
@ pt123:「我仍然無法理解黑客可以獲得Android應用程序的全部源代碼」 - 他們可以獲取大多數客戶端應用程序的「完整源代碼」大多數操作系統。不可否認,像Java這樣的基於字節碼的語言往往比本地指令更易於反編譯。如果您擔心客戶端應用程序的安全性,那麼只需編寫服務器端應用程序(不過,請注意瀏覽器中的煩人JavaScript!)。 – CommonsWare