我想檢查DexGuard的工作原理,但似乎沒有免費的試用版。DexGuard如何加密類?
DexGuard可以加密Android應用程序嗎?或者它只是混淆了代碼? DexGuard加密如何工作?如果您可以提供反編譯之前和之後使用DexGuard運行的示例應用程序的代碼,那就太好了。
我想檢查DexGuard的工作原理,但似乎沒有免費的試用版。DexGuard如何加密類?
DexGuard可以加密Android應用程序嗎?或者它只是混淆了代碼? DexGuard加密如何工作?如果您可以提供反編譯之前和之後使用DexGuard運行的示例應用程序的代碼,那就太好了。
雖然他們使用的術語加密,它似乎真的很困惑。我這樣說只是因爲它們可能會加密某些字符串/值......加密密鑰也必須存儲在應用程序中的事實意味着它們爲代碼提供了「鎖定」,同時打包了「密鑰「 用它。
Eric在上面的回答中確實表達了...... – Dori
DexGuard在舊版本中使用「DES」Alg來加密指定的類。後來它改變了「AES」alg。 加密指定類後,通過解密方式通過數據陣列格式將加密數據存儲到另一個類中。 Dex中的靜態塊解密方法是使用控制流混淆和API隱藏混淆的clinit格式方法。所以對解密方法進行反混淆是有點困難的。在其他類中,將指定的類更改引用到反射操作碼。每次運行APK時,加密的類將首先以靜態方法解密。解密後的類將使用反射API加載到dvm內存中。所以其他類可以正確引用指定的類。而已。在我看來,DexGuard是非常強大的混淆工具。如果每個功能模糊處理都適用於APK,則需要花費大量時間來翻轉整個真實節目。
嗨!感謝您的回覆!是的,我對DexGuard中的加密定義感到困惑。基本上,我的理解是加密通過使用密鑰來轉換數據。但是,如果Android應用程序被加密,Dalvik將無法理解加密應用程序,因爲Dalvik不包含該應用程序的解密器。除非解密程序與密鑰一起附加在應用程序內部。這樣,在由Dalvik運行之前,該類將被應用程序本身解密。那是DexGuard的工作原理嗎? – Arci
我可以使用DexGuard和Google Play的Android 4.1加密功能嗎?另外,是否推薦與Proguard一起使用DexGuard?我在Proguard的頁面上注意到DexGuard沒有預先驗證課程。如果我要使用DexGuard,我該如何預防這些課程?謝謝! :D – Arci
正確。是的,從外部看,處理後的應用程序仍然看起來像其他任何應用程序; Google Play仍然可以對其進行加密。不,您不需要結合ProGuard和DexGuard,因爲DexGuard已經提供了ProGuard的功能。預先驗證僅適用於Java Micro Edition和Java 6,不適用於Android。 –