日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )

發(fā)布時間:2025/6/17 Android 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 ) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、Proguard 默認(rèn)混淆結(jié)果
  • 二、-keepclassmembers 混淆效果
  • 二、-keepclasseswithmembernames 混淆效果


更多 ProGuard 混淆配置參考 : https://www.guardsquare.com/en/products/proguard/manual/usage





一、Proguard 默認(rèn)混淆結(jié)果



ProGuard 的默認(rèn)混淆結(jié)果 , 就是沒有 人為添加保留任何設(shè)置 , 使用的是 默認(rèn)混淆文件 , 除了 MainActivity , 以及 MainActivity 中的 333 個內(nèi)部類 , IdleHandler , Handler , Thread , 其余 Java 文件都被混淆 ;





二、-keepclassmembers 混淆效果



-keepclassmembers 作用只是保證類成員 ( 成員變量 , 成員方法 ) 不被混淆 , 類名還是會被混淆的 ;

# 指定 kim.hsl.handler.Handler 類成員不被混淆 -keepclassmembers public class kim.hsl.handler.Handler

在編譯后的結(jié)果中 , 類名與成員名稱都被混淆了 , 因為沒有配置不被混淆的成員 ;


使用 -keepclassmembers 指定保留 Handler 中的 public void *(*) 樣式的方法不被混淆 ;

# 指定 kim.hsl.handler.Main 類成員不被混淆 -keepclassmembers class kim.hsl.handler.Handler{public void *(*); }

下面是在一個被混淆的類中 , 找到了沒有被混淆的 kim.hsl.handler.Handler 的成員方法 ;





二、-keepclasseswithmembernames 混淆效果



-keepclasseswithmembernames 與 -keep 作用類似 , 都可以保留 類名 與 成員 不被混淆 ,


-keepclasseswithmembernames 配置保留類名 : 下面的配置只會 保留類名 , 成員名會被混淆 ;

# 保留 kim.hsl.handler.Handler 類名 , 函數(shù)名會被混淆 -keepclasseswithmembernames class kim.hsl.handler.Handler

下面的混淆結(jié)果顯示 , kim.hsl.handler.Handler 的類名被保留下來 , 成員被混淆 , 這是因為沒有配置要保留的成員 ;


-keepclasseswithmembernames 配置保留類名 , 成員名 : 下面的配置 類名 與 成員名都會被保留 ;

# 保留 kim.hsl.handler.Handler 類名 , 成員名稱 -keepclasseswithmembernames class kim.hsl.handler.Handler{*; }

下圖中展示了 , Handler 類中 , 類名 與 成員名稱 都被保留下來 ;


-keepclasseswithmembernames 與 -keep 配置區(qū)別 : -keepclasseswithmembernames 中假如配置的 保留成員不存在 , 則該 混淆不生效 ;

# 保留 kim.hsl.handler.Handler native 方法名稱 -keepclasseswithmembernames class kim.hsl.handler.Handler{native <methods>;---- }

沒有找到 Handler 中的 native 方法 , 則整個 Handler 都不保留 , 類名 與 成員 都被混淆了 ;

總結(jié)

以上是生活随笔為你收集整理的【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。