apk包真的安全嗎?會被反編譯嗎?如何防止被反編譯?
一、檢視APK包的源碼
dex2jar 這個工具用于将dex檔案轉換成jar檔案
jd-gui 這個工具用于将jar檔案轉換成java代碼
1.解壓apk壓縮包,找到classes.dex.
執行代碼: <code>d2j-dex2jar classes.dex</code>
2.然後使用jd-gui工具打開classes-dex2jar.jar這個檔案就可以看到源碼了
二、檢視和修改apk包資源
apktool 解壓。
apktool d dujinyang.apk編譯出來smail檔案,修改之後apktool b dujinyang -o KARL_dujinyang.apk把它編譯回去,當然,如果要正常使用的話要使用簽名。
簽名使用:
簽名之後才可以正常安裝到手機上的,當然,你可以優化下包,使用Zip對齊下,如果要深入的話,Zip還有其它用法。
文法:zipalign 4 KARL_dujinyang.apk KARL_dujinyang_ok.apk
三、如何混淆代碼防止反編譯
Eclipse的話可以通過Jocky插件、project.properties檔案等
Android Studio的話可以通過借助SDK中自帶的Proguard工具,需要修改build.gradle中的一行配置即可。
并且還可以起到壓縮APK包的作用。
四、混淆sdk/Jar
1.通過ClassLoader動态加載的方式進行加密。
2.通過安卓sdk自帶/tools目錄下的proguard GUI進行配置,執行到最後一步即可。
五、加密apk
1.通過動态加載時,加入自身加密算法。
2.通過第三方平台進行加密,現在都比較穩定安全了。