J2EE代码混淆
代码混淆    2017-06-23 10:48:08    508    0    0
zejoe   代码混淆

代码混淆:java代码很容易被反编译,泄露重要内容。代码混淆是对编译后生成的内容进行混淆,使反编译后的代码很难被人读懂,但是jvm仍然可以识别。

混淆工具:maven插件proguard-maven-plugin​

使用风险:

  1. 使用spring框架的项目,会对原生代码有依赖,可能会影响运行,但目前的配置已经避免了基本的影响
  2. 混淆后,运行过程中调试代码会比较麻烦,需要对照map文件找到出错位置

使用方法:

  1. 在pom.xml中配置混淆插件proguard-maven-plugin
  2. 混淆机制配置proguard.cfg 
  3. 混淆结果
    1. 执行mvn package打包后即有混淆结果:
      1. target目录结构:target下增加了几个文件:classes_proguard_base、proguard_map.txt、proguard_seed.txt
      2. classes目录结构:classes文件为编译后的文件,从这里看已经混淆成功,除保护的包名外,其它包名已被混淆
      3. classes_proguard_base:proguard为我们保留了一份编译后混淆前的classes目录
      4. 这是war包解压后的目录,可见混淆后的classes文件已被打入war包
      5. proguard混淆后生成的两个文件:
        1. proguard_map.txt:列出了混淆的映射关系,可以对照映射关系来调试代码
        2. proguard_seed.txt:列出了被保护的类文件即不被混淆的文件

 

网上大多资料有误导,建议参考官方资料,proguard-maven-plugin​洗白说明:

  1. proguard-maven-plugin​可以直接对生成的classes文件进行混淆!
  2. proguard-maven-plugin支持混淆后生成各种类型的包包括war包!

参考链接:

  1. proguard-maven-plugin官方文档
  2. proguard官网
  3. proguard-maven-plugin源码

上一篇: COSBench-OSS Adaptor开发(一)

下一篇: HTTP基本认证,服务器认证客户端(java-python)

508 人读过
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论
文档导航