jsbxyyx/mjar-java

GitHub: jsbxyyx/mjar-java

mjar-java是一个通过字节码加密和运行时解密来保护Java应用程序免受逆向工程的安全工具。

Stars: 5 | Forks: 1

# mjar-java 中文 [English](README_en.md) `mjar-java` 是 [mjar](https://github.com/jsbxyyx/mjar) 的 Java 侧配套项目,主要用于对 JAR / WAR 中的 class 文件进行加密与字节码修改,并通过 `libmjar` 原生库完成实际加密。 ## 使用教程 ### 构建 确保本地已安装 JDK 8+ 与 Maven。 mvn clean package 构建完成后生成可执行 jar。 ### 加密 JAR / WAR(Mjarencrypt4) 当前主要使用 `Mjarencrypt4`,用于处理 JAR、WAR 及其内部嵌套归档。 命令: java -jar mjar.jar [DEBUG] 参数说明: - `pkg_prefix`:包前缀,使用点分形式,例如 `com.github.jsbxyyx` - `source_jar_or_war`:待处理的 JAR 或 WAR 文件路径 - `DEBUG`:可选,开启调试输出 输出文件名规则: - `app.jar` -> `app-enc.jar` - `app.war` -> `app-enc.war` 示例: java -jar mjar.jar com.github.jsbxyyx app.jar 处理完成后会生成加密后的产物,可配合 `mjar` 原生 Agent 在运行时解密加载。 ### 控制台输出说明 处理过程中会输出树状结构,示例: Processing: app.jar / ├── [A] BOOT-INF/lib/... ├── [C] com/github/jsbxyyx/service/MyService.class [E][P] ... >>> Encryption Complete: /path/to/app-enc.jar 标记含义: - `[A]`:archive,表示嵌套 JAR/WAR - `[C]`:class 文件 - `[E]`:该 class 会被加密 - `[P]`:该 class 会被打补丁 ### 使用注意 - 本项目需要配合 [mjar](https://github.com/jsbxyyx/mjar) 一起使用 - 建议仅对核心业务包进行加密,避免影响第三方依赖 - 某些依赖反射或运行时字节码增强的框架,可能需要排除部分 class - 加密无法提供绝对安全,但可以显著提高静态分析和逆向工程成本 ## 许可证 如仓库中存在 [LICENSE](LICENSE) 文件,请以该文件为准。 ## 相关项目 - [mjar](https://github.com/jsbxyyx/mjar) —— 原生加密与运行时加载的主项目。
标签:ASM字节码操作, GHAS, JAR加密, Java安全, JS文件枚举, Maven项目, Spring Boot支持, WAR加密, 代码保护, 原生代理, 反逆向工程, 域名枚举, 字节码加密, 字节码补丁, 嵌套归档, 类文件加密, 软件加固, 运行时解密, 静态分析防御