Proguard
文章平均质量分 63
iteye_1194
这个作者很懒,什么都没留下…
展开
-
代码混淆器Proguard源码分析(一) 读取
Proguard是Android中经常用的混淆工具,当然你也可以采用其他的混淆工具。但我这边谈到的只是Proguard。 大多数人了解Proguard大都通过文档,但是我这次决定从源码入手,分析Proguard。我个人觉得Proguard的源码写的还是非常的出彩的,当然你可能跟我有不一样的品味,我也不做深究。我这边只想说明一点,那就是,如果你想从这几篇文章里面试图不通过源码就弄懂文章的主体意思...2013-10-22 19:40:18 · 323 阅读 · 0 评论 -
Proguard源码分析(二)输出文件
ProGuard outputs thefollowing files after it runs: dump.txt···描述apk文件中所有类文件的内部结构 PrintStream ps = createPrintStream(configuration.dump);try{ programClassPool.classesAccept(new ClassPrinter(ps))...原创 2013-10-28 10:28:07 · 138 阅读 · 0 评论 -
Proguard源码分析(三)Seed文件
Seed文件就是保持住的类文件,直白一点就是不被混淆的文件,他主要是通过printSeeds() 方法实现 这里我们要引入一个类ClassVisitor 。这个我们要区分ClassPoolVisitor ClassPoolVisitor可以看成是ClassVisitor的组合, 也就是说我们单纯看代码实现的时候可以只关注ClassVisitor。先看下seed的输出文件: 1:com.t...2013-10-29 12:45:01 · 239 阅读 · 0 评论 -
Proguard源码分析(四) 压缩
上一次我们讲了seed文件,这次我们说压缩,对应的输出文件是usage,可以通过命令-printusage usage.txt来配置 压缩的目的是为了删除一些我们不使用的类和方法,从而达到字节码压缩的目的。 这里我贴出我的微博:http://weibo.com/1752090185/profile?rightmod=1&wvr=5&mod=personinfo 有意向可以加...2013-10-30 10:59:45 · 189 阅读 · 0 评论 -
Proguard源码分析(五) ConfigurationParser.keep参数
本章节我们绕回来讲Keep参数,也就是ConfigurationParser 这个类。 ConfigurationParser这个类是非常重要的类,如果你已经开始看源码,你会发现所有的类和功能都围着它来转,本章节我们来揭开它的地一层面纱。 else if (ConfigurationConstants.KEEP_OPTION.startsWith(nextWord)) ...原创 2013-10-31 14:43:50 · 243 阅读 · 0 评论 -
Proguard源码分析(六)前文总结
目前,我们读了Proguard的代码,相信已经开始对访问者模式和装饰器模式有很深的理解,现在我们再带着这两个模式认真的回顾下代码,因为只有这样,我们才能更好的进行下面的代码阅读。但是如果你还带着疑问,不妨看下前面的章节,或者看一些有关设计模式的书体会一下。我们回到我们熟悉的入口Proguard类的execute方法中:第一部分:读取(readinput)InputReader.execute: C...2013-11-05 14:40:44 · 164 阅读 · 0 评论 -
Proguard 源码分析 (七) 混淆
本章我们讲Proguard非常重要的一个步骤:混淆Obfuscator 混淆的目的很明显,是为了混淆语义。 我们能轻车熟路的找到混淆的源头: Obfuscator 的execute方法 我们来看一下就行混淆器给我们设置了怎样的访问者: ClassVisitor memberInfoLinker = configuration.useUniqueClassMemb...原创 2013-11-10 21:19:00 · 195 阅读 · 0 评论