Col-E/CAFED00D
GitHub: Col-E/CAFED00D
一个具备抗混淆能力的 Java 类文件读写库,能够容错解析并清理混淆器产出的畸形类文件。
Stars: 139 | Forks: 16
# CAFEDOOD [](https://jitpack.io/#Col-E/CAFED00D) 
## 功能
* 支持 [Oak](https://en.wikipedia.org/wiki/Oak_(programming_language)) 类
* 丢弃由混淆器添加的畸形属性
* 重写 [内部 JVM 指令](https://github.com/openjdk/jdk/blob/769f14db847813f5a3601e9ec21e6cadbd99ee96/src/hotspot/share/interpreter/bytecodes.cpp#L491)
## 用法
### 添加依赖
添加 CafeDude 依赖_(其中 `VERSION` 为最新版本)_
```
software.coley
cafedude-core
VERSION
```
```
implementation 'software.coley:cafedude-core:VERSION'
```
### 读取和写入类
默认设置已启用反混淆措施。
```
// Reading
byte[] code = ...
ClassFileReader cr = new ClassFileReader();
// cr.setDropForwardVersioned(false) - enabled by default
// cr.setDropEofAttributes(false) - enabled by default
// cr.setDropDupeAnnotations(false) - enabled by default
ClassFile cf = cr.read(code);
// Writing
code = new ClassFileWriter().write(cf);
```
### 剥离类中的保留 hotspot 指令
如果你遇到使用了保留 hotspot 指令的类,请创建 `ClassFileReader` 的子类,并提供 `IllegalRewritingInstructionsReader`。
相关示例可以在 [`CrasherPatchingTest.java`](core/src/test/java/software/coley/cafedude/CrasherPatchingTest.java) 中找到
### 剥离类中的畸形属性和数据
可以通过以下方式移除额外项:
```
// Modifies the 'cf' instance
new IllegalStrippingTransformer(cf).transform();
```
标签:JS文件枚举, 后台面板检测, 域名枚举