论坛首页 安全编程开发区 阅读主题

[原创][开源自开发]JavaHumanify,将混淆过的 Java 代码自动去混淆 / 人性化命名

449 浏览 1 回复
#1 楼主 2026-06-01 21:09:22
我开源了一个逆向分析工具 Java Humanifyc53K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6u0L8X3W2@1K9h3q4D9i4K6u0V1e0$3&6W2i4K6u0r3d9X3q4$3j5g2)9J5k6r3S2#2L8h3q4F1K9h3k6&6
它的功能是:利用 大语言模型(LLM) + 抽象语法树(AST)安全重写,将混淆过的 Java 代码自动“去混淆 / 人性化命名”。 • 将原本难以阅读的反编译代码(满屏 a、b、c、d) • 自动变成有意义的类名、方法名、变量名(比如 Adder.add(value)) • 效果:很多类和函数一眼就能看出作用,大幅节省逆向分析时间 • 在 AST 层进行改名,不改控制流与逻辑,输出与原代码1:1 等价
已上线的新功能: • 智能注释:自动给函数和类生成一句话功能描述,进一步提升阅读效率
接下来我会做: • 本地部署的小型语言模型(Edge LLM):相较直接调用云端大模型,更省费用、更高效、对代码还原更精准、隐私性更强(源码不出本地) • 更丰富的语义预设:让还原出来的名字更贴近真实语义与具体领域(网络/加解密/集合/广告等)
目标很简单:让逆向工程师、研究人员和开发者用更少时间理解被混淆的 Java 项目。

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-288679.htm
#2 2026-06-01 21:09:22
2025年10月17日更新 v0.3.0
--------------------------------------------------------------
更新说明
批处理并发:为避免长请求超时,suggest 与 annotate 现在会将任务分批并行发送到 LLM。
默认并发:100(可用 --max-concurrent 调整)
批大小:--batch(默认 12)
使用示例# 默认并发 100;自定义时:java -jar jhumanify.jar humanify \  --max-concurrent 100 \  --batch 12 \  samples/src samples/out
我尝试还原了一些较大的工程,效果还是较为满意的,大家可以试试

请登录后参与讨论

立即登录 注册账号