【Android安全】混淆技术 Proguard Package Flattening用法及原理

参见Proguard官网的介绍:
https://www.guardsquare.com/manual/configuration/examples

Obfuscating package names

Package names can be obfuscated in various ways, with increasing levels of obfuscation and compactness.

例如,混淆前的包结构:

mycompany.myapplication.MyMain
mycompany.myapplication.Foo
mycompany.myapplication.Bar
mycompany.myapplication.extra.FirstExtra
mycompany.myapplication.extra.SecondExtra
mycompany.util.FirstUtil
mycompany.util.SecondUtil

假设mycompany.myapplication.MyMain类不被混淆(is kept by the configuration)并且所有其他类均被混淆,

则,混淆后,mycompany.myapplication.MyMain类不被混淆,且mycompany.myapplication.MyMain类所在的包不被混淆:

mycompany.myapplication.MyMain
mycompany.myapplication.a
mycompany.myapplication.b
mycompany.myapplication.a.a
mycompany.myapplication.a.b
mycompany.a.a
mycompany.a.b

-flattenpackagehierarchy 选项,通过对包层次结构的扁平化处理,进一步实现混淆

相关选项:

-flattenpackagehierarchy 'myobfuscated'

被flatten之后的包结构如下:

mycompany.myapplication.MyMain
mycompany.myapplication.a
mycompany.myapplication.b
myobfuscated.a.a
myobfuscated.a.b
myobfuscated.b.a
myobfuscated.b.b

也就是mycompany.myapplication包依然不被混淆,但是mycompany.myapplication.a包被myobfuscated.a替代,mycompany.a包被myobfuscated.b替代。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值