Java Obfuscation Tool - PreEmptive_Protection_DashO(Eval_10.0.1)

 

DashO 软件版本简介

  1.  PreEmptive_Protection_DashOEval_10.0.1 是针对Java、Android和Kotlin应用程序的应用程序加固和混淆工具,DashO以多种方式保护库或应用程序
  2. 使编译后的代码变得模糊,从而使使用静态技术进行分析变得更加困难
  3. 注入代码来自动态检测和响应各种威胁,这使得它甚至难以开始篡改、调试或检查
  4. 可以将调用注入到定制代码中,定制代码可以选择的任何方式响应威胁,从而完全控制应用程序在检测到威胁时的行为

DashO 混淆工作机制

  1. 每层都提供了总体保护策略的重要组成部分;如果一层受到威胁,其他层将继续提供有效的保护。不仅存在多层,而且每个层都具有高级功能,这些功能比其他混淆产品使用的简单技术更强大。
  2. 保护的第一层是混淆技术,该技术对Java字节码进行操作,使逆向工程变得困难或不可能。
  3. 下一层保护是运行受保护软件时发生的检查。当软件检测到攻击者试图对其进行篡改或反向工程,或者该软件在不安全的环境中运行时,它可以使用自定义逻辑进行防御。检查包括:篡改检查,调试检查,拆卸,优化

DashO 安装过程

  1.  下载 : https://www.preemptive.com/downloads  它提供多个版本 Dotfuscator Professional for .NET  和 DashO Professional for Java 。当然了每个版本都有对应的liux和windows版的可供下载 。   
  2.  本次调研使用的是java中的windows版本,安装的时候直接点击exe文件就可以安装。
  3. 安装完成后,首次启动首先需要到C:/Program Files/PreEmptive Protection DashO X.y/app这个目录下修改jdk路径,然后需要输入license ,license的申请是在注册账号的时候会发到你的邮箱中。
  4.  针对java你可以对.jar或者.war进行模糊,如果要对war包进行模糊,点击首页中的new project然后选择web app,如下图所示:
                                                      
                       
  5. 通过上面步骤后会让你选择一个目录保存你的DashO project Files 然后你会在该目录下看到dasho的文件夹里面包含三个文件
    1. obfuscate.xml  一个Ant脚本会打开.war文件,运行DashO项目文件,然后重新组装.war文件。
    2. obfuscate.properties  由obfuscate.xml读取的Java属性文件。使用此文件更改模糊后war包放的位置默认值。
  6. 接下来就要执行DashO的ant混淆命令了,此处会用到ant的环境,所以如果机器没有ant环境可以先设置环境,设置好后在上面的目录下执行 ant -f obfuscate.xml 

DashO 混淆 WAR 包

  1.   首先通过Dasho软件分析后会生成一个名为dasho的文件夹
  2. 通过ant -f obfuscate.xml命令后会在指定的文件夹在指定文件夹生成两个文件夹.obfus以及.unwar
     
  3. 将.war文件提取到一个目录中。默认目录是.unwar。这个.unwar文件可以通过命令重新回到可执行的war包文件
  4. 它根据.unwar目录的内容运行向导生成的项目文件。结果临时存储在.obfus目录中。
  5. 它将.war文件与混淆的代码重新组装到一个新文件中,并将_dashoed附加到名称后面。
  6. 利用DashO混淆后不会改变应用功能
  7. 混淆的前后对比

    1. 整个war包的结构没什么变化 ,大小也差不多,内部的class发生了变化因此会导致重新打包后的war的大小有所变化。
    2. 反编译混淆后的class文件会发现混淆后的会对java代码进行压缩改造,例如变量名称,方法名的简化
    3. 混淆后会对字符串加密将字符串隐藏在可执行文件中,仅在需要时才恢复其原始值
    4. 混淆前后的war包通过jetty上正常运行

DashO和Jenkins Pipeline 集成

TODO1: DashO和Jenkins Pipeline 集成过程

DashO POC 总结

  1. 能成功的输出一个war包,并且能够在jetty上执行

TODO2: 总结是否能够集成到pipeline 打包阶段

       3.war包混淆效率

war包混淆前大小war包混淆后大小混淆花费总时间
80M77M5s

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值