ProGuard代码混淆的疑惑,请教了。

davexa 2019-02-21 11:06:28
Hi,

Android Studio 3.3 中,打开代码混淆开关后,build gradle 中有如下内容:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

有三个问题请教:

1. proguard-android.txt 理解是从SDK文件夹去找,后面的这个proguard-rules.txt,是AS会自动生成的一个空模板,还是需要自己在项目文件夹中手工建立这个一个文本文件?

2. 看到有的文档或同学发帖中提到,他的后面这个文件,名称是proguard-pro.txt,而非proguard-rules.txt。这两者是有什么区别吗?

3. 在某论坛里看到,有同学反映自己开发的安卓应用,被不肖之徒下载后反编译,然后应用名称、界面、功能都没有变更,只是篡改了包名 package name,然后竟然在华为应用商店里给发布上架了。原作者投诉,应用商店则要求其提交权利证明,估计是指软件著作权吧。个人开发者估计没有申请过这个,李逵打李鬼不容易。
这里想问的是,利用proguard代码混淆,是否能一定程度上阻止(或增加其违法成本),这类反编译后篡改包名的不肖行径?

谢谢。

Btw, 还有好几个问题在排队,等待咨询CSDN高手;怎奈分数不够,只能量入敷出,慢慢来了。尬。
...全文
526 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
王能 2019-02-22
  • 打赏
  • 举报
回复
proguardFiles就是java的setProguardFiles(String...files)而已,是让你传文件过去 getDefaultProguardFile('proguard-android.txt')传入系统默认的忽略文件配置 'proguard-rules.txt'传入自定义文件配置 'proguard-rules.txt'可以随便写,仅仅是java的相对目录而已,这种写法就是这个build.gradle文件的相对目录,你看看同目录下应该有这个文件,没有创建一个加上自己的配置就行了。 'proguard-rules.txt'你也可以改成'D://aaa/bbb.txt'这样其他人就不好用了,所以写的都是相对目录。 混淆配置可以看我的博客https://blog.csdn.net/weimingjue/article/details/84976058 以及build.gradle配置也在我的其他博客里
[](){} 2019-02-22
  • 打赏
  • 举报
回复
关于代码混淆,这篇博客讲的挺好https://blog.csdn.net/liuderong0/article/details/85205711
davexa 2019-02-21
  • 打赏
  • 举报
回复
引用 1 楼 SemiraChen 的回复:
我这里是
release {
minifyEnabled false
// zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

1、proguard-android.txt是google官方提供的一个android app项目的默认通用配置文件,适用于所有android app项目
proguard-rules.pro是自动生成的空文件,里面写混淆规则。
2、不造怎么回答,只知道proguard-android.txt和proguard-rules.pro,其他的我不知道是什么,可能是Eclipse开发配置混淆的东西把。
3、利用proguard代码混淆,能一定程度上阻止。至少不会随便来个人反编译一下就能看到你的代码了。

谢谢答复。
我的project确实是从Eclipse移植而来,但是在Eclipse下时,并未做proguard混淆。现在的困惑是,
1.为什么配置中是proguard-rules.txt,而非proguard-pro.txt?
2.两个文件名称不同,是有什么讲究么?
3.这个文件是自动生成的空文件,还是需要自己手工建立?在我的project文件夹下没找到,但是确实混淆了。
4.如那个例子中的反编译,它只是修改了包名,没有篡改其余代码。想问混淆后,包名会被隐藏吗?
再次感谢。顺祝午安。
SemiraChen 2019-02-21
  • 打赏
  • 举报
回复
我这里是 release { minifyEnabled false // zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 1、proguard-android.txt是google官方提供的一个android app项目的默认通用配置文件,适用于所有android app项目 proguard-rules.pro是自动生成的空文件,里面写混淆规则。 2、不造怎么回答,只知道proguard-android.txt和proguard-rules.pro,其他的我不知道是什么,可能是Eclipse开发配置混淆的东西把。 3、利用proguard代码混淆,能一定程度上阻止。至少不会随便来个人反编译一下就能看到你的代码了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧