CodingGay/BlackObfuscator

GitHub: CodingGay/BlackObfuscator

一款基于dex2jar的Android DEX控制流混淆工具,通过控制流平坦化技术增加反编译难度,保护应用源代码安全。

Stars: 1084 | Forks: 234

# DEX控制流混淆 · BlackObfuscator **[English Version](README_EN.md)** ![](https://img.shields.io/badge/language-java-brightgreen.svg) 本项目针对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中的包或者类不会进行混淆 ## 后续计划 - 更高强度的混淆 ## 效果展示 ### 混淆前 ![xx](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8e3b61e251121747.png) ### 混淆后 ![xx](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/6a7d58401c121748.png) ![xx](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a9c5709644121750.png) ## 感谢 - [dex2jar](https://github.com/pxb1988/dex2jar) ### License
标签:Android安全, Android开发, APK保护, BlackObfuscator, dex2jar, DEX文件处理, DEX混淆, DNS 反向解析, JS文件枚举, 云资产清单, 代码审计防御, 代码混淆, 反编译防护, 域名枚举, 域名枚举, 应用加固, 控制流平坦化, 控制流混淆, 软件保护, 逆向工程