docs: add backlog note about Naven-derived module list

README: clarify that the deobfuscated jar is the latest one as of
2026-05-21 (rather than an old build, as some users seem to assume),
collapse a stray hard wrap, and link to a new paste/ subtree that
will track which modules were lifted from the Naven client.

Also rename KillAura.aimRange to attackRange to match the user-facing
'Attack Range' label and how the field is actually used in the in-FOV
check.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Shirona1337
2026-05-22 00:57:42 +08:00
parent a0ac1a8cf3
commit 85eeac4738
3 changed files with 14 additions and 6 deletions
+8 -3
View File
@@ -18,14 +18,14 @@
[原始Jar](./mapping/zen-orignial.jar)
[Mapping](./mapping/zen.mapping)
需要说明的是,部分喜欢裸舞的忠实Zen用户认为本源码逆向自比较旧的Zen版本。可能是因为这部分用户的脑容量只允许自己导入其他配置,因此不认识Zen的老旧UI。因此必须要说明,此源码使用的原始Jar截止至2026年5月21日是最新的。
## 细节
经过Opus 4.7长达18秒的分析,Opus认为所有的类由惨遭魔改的Zelix KlassMaster混淆。除了Zelix的Invoke Dynamic和String Encryption外,还有部分未参与任何计算的Interger \ Long变量花指令代码和仅在部分方法中出现的Flow混淆。
其中大部分类都可以经过小修小补的现有Zelix反混淆器完成,关键部分的`cinit`被Native保护,导致在Java层中没有对应的Master Key可以对Invoke Dynamic和String反混淆。但可能由于精神马来西亚人的脑袋在马来西亚骑摩托被其他车创飞导致脑溢血,即使你没有通过客户端认证也可以完整加载Native并对Class进行注册。因此我们完整的还原了所有类的Invoke Dynamic和String混淆。
其他的混淆经过Opus长达30秒的分析,顺利写出了反混淆器。
但被Rename后的代码几乎不可读,因此我用Opus 4.7制作了[Enigma MCP](https://github.com/Margele/Enigma-MCP),接入Sonnet 4.6对其参照部分客户端进行了反混淆。
其他的混淆经过Opus长达30秒的分析,顺利写出了反混淆器。 但被Rename后的代码几乎不可读,因此我用Opus 4.7制作了[Enigma MCP](https://github.com/Margele/Enigma-MCP),接入Sonnet 4.6对其参照部分客户端进行了反混淆。
再使用Opus 4.7对本项目经过长达6小时的修复和少量的人工修复,便得到了这份源码。
@@ -38,6 +38,11 @@
[详细分析](./mapping/BACKDOOR.md)
## 抄袭
此项目大部分功能模块几乎全部抄袭自Naven客户端,具体详见以下分析。
[详细分析](./paste/README.md)
## 状态与注意事项
- 这是**尽力而为的反混淆结果**,部分符号是根据上下文重建的,可能与原作者的命名意图不一致。
+3
View File
@@ -0,0 +1,3 @@
# Paste
WIP
@@ -64,7 +64,7 @@ public class KillAura extends Module {
public final BooleanSetting targetEsp;
public final BooleanSetting noUseItem;
public final BooleanSetting aboveTarget;
public final NumberSetting aimRange;
public final NumberSetting attackRange;
public final NumberSetting aps;
public final NumberSetting switchAttackTimes;
public final NumberSetting switchSize;
@@ -98,7 +98,7 @@ public class KillAura extends Module {
this.targetEsp = new BooleanSetting("Target ESP", false);
this.noUseItem = new BooleanSetting("No Use Item", false);
this.aboveTarget = new BooleanSetting("Above Target", false);
this.aimRange = new NumberSetting("Aim Range", 5.0, 1.0, 6.0, 0.1);
this.attackRange = new NumberSetting("Attack Range", 5.0, 1.0, 6.0, 0.1);
this.aps = new NumberSetting("APS", 10.0, 1.0, 20.0, 1.0);
this.switchAttackTimes = new NumberSetting("Switch Attack Times", 10.0, 1.0, 20.0, 1.0);
this.switchSize = new NumberSetting("Switch Size", 1.0, 1.0, 5.0, 1.0,
@@ -362,7 +362,7 @@ public class KillAura extends Module {
return false;
}
Vec3 vec3 = RotationUtil.closestPoint(mc.player.getEyePosition(), entity.getBoundingBox());
if (vec3.distanceTo(mc.player.getEyePosition()) > this.aimRange.getValue().floatValue()) {
if (vec3.distanceTo(mc.player.getEyePosition()) > this.attackRange.getValue().floatValue()) {
return false;
}
return RotationUtil.isEntityInFov(entity, this.fov.getValue().floatValue() / 2.0f);