吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3863|回复: 26
收起左侧

[Disassemblers] 逆向分析工具 Java Humanify,把混淆过的 Java 代码自动去混淆 / 人性化命名

[复制链接]
InitialOne 发表于 2025-10-4 14:23
本帖最后由 InitialOne 于 2025-10-17 20:41 编辑

我开源了一个逆向分析工具 Java Humanify
https://github.com/Initial-One/Java-humanify

它的功能是:利用 大语言模型(LLM) + 抽象语法树(AST)安全重写,把混淆过的 Java 代码自动“去混淆 / 人性化命名”。
1.将原本难以阅读的反编译代码(满屏 a、b、c、d)
2.自动变成有意义的类名、方法名、变量名(比如 Adder.add(value))
3.效果:很多类和函数一眼就能看出作用,大幅节省逆向分析时间
4.在 AST 层进行改名,不改控制流与逻辑,输出与原代码1:1 等价

已上线的新功能:
智能注释:自动给函数和类生成一句话功能描述,进一步提升阅读效率

接下来我会做:
本地部署的小型语言模型(Edge LLM):相较直接调用云端大模型,更省费用更高效、对代码还原更精准隐私性更强(源码不出本地)
更丰富的语义预设:让还原出来的名字更贴近真实语义与具体领域(网络/加解密/集合/广告等)

目标很简单:让逆向工程师、研究人员和开发者用更少时间理解被混淆的 Java 项目。

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
我尝试还原了一些较大的工程,效果还是较为满意的,大家可以试试

运行CLI效果

运行CLI效果

混淆过的源码

混淆过的源码

还原后的源码

还原后的源码

免费评分

参与人数 14吾爱币 +23 热心值 +13 收起 理由
LimeOvO + 1 谢谢@Thanks!
kumaaaku + 1 + 1 我很赞同!
Ethan19 + 1 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
元古宙新手 + 1 + 1 我很赞同!
tuimaochang + 5 + 1 谢谢@Thanks!
Tonyha7 + 2 + 1 谢谢@Thanks!
helian147 + 1 + 1 热心回复!
yanxuezhiyong2 + 1 我很赞同!
Stray3337 + 1 谢谢@Thanks!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
vip1639253946 + 1 + 1 我很赞同!
龙性 + 1 + 1 我很赞同!
laozhang4201 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

正己 发表于 2025-10-5 11:27
star了,期待表哥适配一下更长的上下文模型
 楼主| InitialOne 发表于 2025-10-30 17:39
v0.5.0
1.suggest: Added crash-proof retries — timeouts/HTTP2 CANCEL/connection resets now use exponential backoff; a failed batch no longer aborts the run and partial results are still written.
2.LLM clients: Sanitize control characters before sending; sturdier request headers; exponential backoff on 429/5xx; DeepSeek base URL auto-normalized with /v1.
3.Added package-refactor command for semantic renaming of obfuscated package/folder names.

1.suggest:新增“不崩溃”重试(超时/HTTP2 CANCEL/连接重置等会指数退避重试);单批失败不影响整体,仍会写出已完成结果。
2.LLM 客户端:发送前清理控制字符;请求头更稳健;429/5xx 指数退避;DeepSeek 自动补 /v1。
3.增加package-refactor指令,给文件夹名命名使用
xyq7750 发表于 2025-10-4 22:16
Mint_Grass 发表于 2025-10-5 01:33
感谢分享,一直以为混淆过就很安全了呢
vip1639253946 发表于 2025-10-5 09:27
不错的分享
dglbh 发表于 2025-10-5 14:42
搞个C#的应该差不多吧!!!!!!!!!!!!!!对于加壳虚拟 化才有难度
maxdog 发表于 2025-10-5 19:12
感谢大佬分享
px307 发表于 2025-10-5 20:51
大神啊,学习一下
alongzhenggang 发表于 2025-10-9 06:13
若是gui化就更好了
liuxiaomei 发表于 2025-10-11 17:59
大佬,要是能多个类中命名保持一致性就好了,目前我用的免费模型里面网页版豆包的上下文能力最好,不过也就3,5个类就不行了,后面就会要手动修改类命
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-7 03:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表