1
我有一個APK與加密的classes.dex文件打包,而資產(圖像,文本等)未加密。JNI是否能夠保護apk文件中的源代碼(classes.dex)?
對我說保護解密密鑰不是問題,我可以使用JNI解密dex文件到一個bytearray並加載它嗎?
我有一個APK與加密的classes.dex文件打包,而資產(圖像,文本等)未加密。JNI是否能夠保護apk文件中的源代碼(classes.dex)?
對我說保護解密密鑰不是問題,我可以使用JNI解密dex文件到一個bytearray並加載它嗎?
可以,如果你願意編寫自定義DexClassLoader
從解密的字節數組*加載類。但爲什麼你需要JNI?你可以在類加載器本身中執行解密。
EDIT
*)不同於JDK,機器人當前不從字節數組支持加載類。您需要將解密後的類數據寫入臨時文件,然後從中加載。
DexClassLoader是否允許從字節數組中加載dexfile?它採用dexfile的路徑加載..我應該爲此重寫getResourceAsStream()方法嗎?我想用JNI使解密器比普通的Java實現更安全 – Shoaib
對不起,如果你還沒有想過一個功能還沒有想過。我更新了我的答案。 –
但是,我們是不是可以實現相同的,即使用DexFile從字節數組加載? – Shoaib