android-Allatori混淆代码
android-Allatori混淆代码
前篇
- 官方
- Java混淆工具Allatori的简单使用 - https://blog.51cto.com/u_15297441/3987690
- Allatori混淆器的介绍以及使用方法 - https://blog.csdn.net/Viviha/article/details/104801930
运行 demo
进入其中的 .\tutorial\step01\files 目录, Allatori提供了一个test.jar, 执行 RunAllatori.bat 即可
里面的具体命令
1
java -Xms128m -Xmx512m -jar ..\..\..\lib\allatori.jar config.xml
- 指定了配置文件 config.xml
然后会就生成混淆后的 obf-test.jar
混淆配置
说明
通用说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<config>
// 输入/输出 文件, 可以配置多个
<input>
<jar in="JavaLab.lib01.main.jar" out="JavaLab.lib01.main-obf.jar"/>
</input>
// 混淆策略
<keep-names>
<class access="protected+">
<field access="protected+"/>
<method access="protected+"/>
</class>
</keep-names>
// 混淆日志
<property name="log-file" value="log.xml"/>
</config>
混淆策略
指定类名不混淆, 但是里面的方法还是会被混淆
```xml
// protected+ 级别以上的 类 里的 protected+ 级别以上 字段和方法不被混淆 <class access="protected+"> <field access="protected+"/> <method access="protected+"/> </class> <class template="class *.Main"/>
将所有 jar 打包到一个 jar 中
a
```xml
<keep-names> <class template="class *.TestFrame"/> </keep-names> <property name="log-file" value="log.xml"/>
添加水印
可以将字符串常量变的混乱. 可以用于在一些写在 java 里面的 秘钥, 如 aes 的 key 的混淆.
```json
<keep-names> <class template="class *.TestFrame"/> </keep-names> <property name="log-file" value="log.xml"/> <watermark key="secure-key-to-extract-watermark" value="Customer: John Smith; Date: xx.yy.zzzz"/>
我们添加了一个具有以下属性的水印元素: 密钥-使用隐写术技术将水印嵌入应用程序的密钥; value——将嵌入到应用程序jar中的任何字符串。它可以是版权、客户名称、公司名称或唯一标识该版本的任何其他信息。水印可用于识别软件的所有者或追踪盗版的来源。