CodingGay/BlackObfuscator
GitHub: CodingGay/BlackObfuscator
一款基于dex2jar的Android DEX控制流混淆工具,通过控制流平坦化技术增加反编译难度,保护应用源代码安全。
Stars: 1084 | Forks: 234
# DEX控制流混淆 · BlackObfuscator
**[English Version](README_EN.md)**

本项目针对Android APK DEX控制流混淆,在不会改变应用原有逻辑的前提下,会将原始代码进行控制流混淆,使得代码难以阅读,增加反编译阅读的难度以达到保护应用。
## 项目声明
- 本项目基于 [dex2jar](https://github.com/pxb1988/dex2jar) 进行修改
- Black系列交流群:390562046(QQ)
## 注意事项
- 本项目基于dex2jar,为了出现转换过程中避免不必要的问题,请尽量混淆自己业务的代码,避免其余三方库一起混淆,在混淆规则内提供自己的业务代码路径。
## Android Studio插件支持
目前本项目已集成Android Studio插件,支持打包自动化混淆。详情请移至:[BlackObfuscator-ASPlugin](https://github.com/CodingGay/BlackObfuscator-ASPlugin)
## GUI支持
GUI工具已开发完成,详情请移至:[BlackObfuscator-GUI](https://github.com/CodingGay/BlackObfuscator-GUI)
## 如何使用
### Main#main
参数 | 解释
---|---
-d | 混淆深度,越高混淆越深
-i | 输入dex的路径
-o | 输出dex的路径
-a | 规则文件,见下一步骤
-p | 需要进行混淆的包名
BlackObfuscatorCmd.main("d2j-black-obfuscator",
"-d", "2",
"-i", "/Users/milk/Documents/classes.dex",
"-o", "/Users/milk/Documents/classes_out.dex",
"-a", "filter.txt");
### 混淆规则
#### 提供需要混淆的类
#it is annotation
#cn.kaicity
#class
cn.kaicity.gk.cdk.BuildConfig
#package
cn.kaicity
#blackList
!cn.kaicity.gk.cdk
#blackList中的包或者类不会进行混淆
## 后续计划
- 更高强度的混淆
## 效果展示
### 混淆前

### 混淆后


## 感谢
- [dex2jar](https://github.com/pxb1988/dex2jar)
### License
标签:Android安全, Android开发, APK保护, BlackObfuscator, dex2jar, DEX文件处理, DEX混淆, DNS 反向解析, JS文件枚举, 云资产清单, 代码审计防御, 代码混淆, 反编译防护, 域名枚举, 域名枚举, 应用加固, 控制流平坦化, 控制流混淆, 软件保护, 逆向工程