# Android Proguard Android Proguard 是 Android 原生的混淆程式套件,其目的是為了不讓反組譯的編碼易於被看清 導引步驟 -- - [ ] 1. 設定 build.gradle 的 buildTypes --> minifyEnabled = true (啟用 Proguard 混淆) - 建議在 release 中啟用就好,因為在 debug 模式中會需要查看 log 及相關的資訊 - proguard-android-optimize.txt 是原生預設混淆的規則 - proguard-rules.pro.txt 是可以再加註客製的混淆規則  - [ ] 2. 在 proguard-rules.pro.txt 檔中加註客製的規則 - proguard-rules.pro.txt 在專案結構 Gradle Scripts 中的 proguard - rules  - 添加自己客製的規則  - 常用規則可查看文獻 - [ProGuard 程式碼混淆保護](https://tw-hkt.blogspot.com/2018/12/proguard.html) - ***坑:由於 Proguard 會將 class 混淆,這可能造成 Gson 在 Parser Model 的時候會有異常,因此客製了一條規則 -keep class com.cfd.voxy.data.remote.model.{;} ,確保 Model 不會被混淆*** - [ ] 3. 輸出 aab / apk ,供 JADX 反組譯套件查看混淆程式碼 - [ ] 4. 請下載 [反組譯 Jadx 下載 - jadx-1.4.4.zip](https://github.com/skylot/jadx/releases/tag/v1.4.4),確認下載後解壓進入 bin ,並執行 jadx.gui 。 - [ ] 5. 將上述輸出的 aab/apk 匯入 jadx 中,即可查看混淆後的結果  - [ ] 6. 可利用 jdax 的 search 尋找想要混淆的 class/function ,並查看是否符合您的混淆結果  - [ ] 7. 測試 App 運作情況,如有異常,很可能是混淆的程式碼沒辦法被第三方套件判讀 參考文獻 --- - [Proguard 簡介](https://jamesqi.medium.com/proguard-d8cc2e67211) - [ProGuard 程式碼混淆保護](https://tw-hkt.blogspot.com/2018/12/proguard.html) - [如何反組譯檢測 App - Jadx](https://ithelp.ithome.com.tw/articles/10208426) - [反組譯 Jadx 下載 - jadx-1.4.4.zip](https://github.com/skylot/jadx/releases/tag/v1.4.4) ###### tags: `Android 資安區` `Proguard`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.