# CodeFort **Repository Path**: anoraks/codefort ## Basic Information - **Project Name**: CodeFort - **Description**: CodeFort致力于保卫您的字节码安全 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/anoraks/codefort - **GVP Project**: No ## Statistics - **Stars**: 38 - **Forks**: 6 - **Created**: 2024-03-15 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README


CodeFort v1.1.0

Java 字节码加密插件,配置简单、多种方式、远程管理!

个人精力有限,如果加密异常请自行源码排查除非是Bug!

https://gitee.com/anoraks/codefort

Maven AGPL-3.0 jdk-8
gitee star


------------------------------------------------------------------------------- ## 简介 `CodeFort`是一个用于class加密的**Maven插件**,通过诸多实用的策略配置,旨在帮助开发者简便,快捷的保护代码安全。 ### CodeFort名称的由来 CodeFort = Code + Fort,Code是代码的表示,Fort表示堡垒。CodeFort寓意保卫代码安全。 ## 🛠️包含组件 一个字节码加密的Maven插件,项目以下组件: | 模块 | 介绍 | | -------------------|---------------------------------------------------------------------------------- | | codefort-core | 核心代码模块 | | codefort-plugin | 加密插件模块 | | codefort-web | 远程控制模块 | ------------------------------------------------------------------------------- ## 版本 ### 1.1.0 - win系统下打包异常修复 ### 1.0.9 - 支持外部lib配置参数relyLibPath - 代理Agent加密配置,增加代理校验逻辑 ### 1.0.7 - 移除父项目pom继承 ### 1.0.6 - 启动时默认密码自动匹配 - Attach侵入检测以及代码校验 ## 安装 ### Maven 在项目的pom.xml的plugins中加入以下内容: ```xml io.gitee.anoraks codefort-plugin 1.1.0 123456 2017-03-01 22:33:23 2027-03-01 22:33:23 FVFKD2YM1WFY 1000 license-client-2.0.jar host.skiree.springdemo host.skiree.springdemo.excludes 127.0.0.1 7007 示例项目 true RSA公钥 外部依赖路径 package CodeFort ``` ------------------------------------------------------------------------------- ### 提供bug反馈或建议 提交问题反馈请说明正在使用的JDK版本、CodeFort版本和相关依赖库版本。 - [Gitee issue](https://gitee.com/anoraks/codefort/issues) ## 使用 ### 所有可选参数说明(部分参数有默认值-可以都不设置) | 参数 | 说明 | | -------------------|---------------------------------------------------------------------------------- | | password | 加密密码(默认为:cfasy) | | startTime | 开始时间 | | endTime | 结束时间 | biosMark | CPU序列号 | availableTime | 剩余可用时间(单位:毫秒,优先级小于时间区间判断) | libs | 需要加密的依赖包,若多个逗号分隔 | packages | 需要加密路径,若多个逗号分隔 | excludes | 加密排除路径,若多个逗号分隔 | host | 远程控制主机IP | port | 远程控制主机端口 | explain | 项目说明 | isDebug | 是否开启Debug | rsaPublicKey | 远程控制公钥 | relyLibPath | 外部lib依赖,若多个逗号分隔 ### 运行说明 如果正常打包的项目为 springdemo.jar,则会在通路下生成springdemo-encrypted.jar,运行下边的命令执行。 ```bash java -javaagent:springdemo-encrypted.jar -jar springdemo-encrypted.jar ``` 输入密码后,如果配置了远程控制就可以在管理页面进行操作。 ``` _____ __ ____ __ / ___/__ ___/ /__ / __/__ ____/ /_ / /__/ _ \/ _ / -_) _// _ \/ __/ __/ \___/\___/\_,_/\__/_/ \___/_/ \__/ [13:45:07.217-INFO] 无法在运行参数中获取密码,将会从系统参数获取 [13:45:07.220-INFO] 无法在系统参数中获取密码,将会从控制台获取 [13:45:07.220-INFO] 提示: 如果未设置密码请直接回车键跳过 [13:45:07.220-INFO] 请输入密码 : [13:47:30.250-DEBUG] Socket服务器IP: 127.0.0.1,端口: 7007 [13:47:30.260-DEBUG] 连接成功 [13:47:40.262-INFO] CodeFort 致力保卫您的代码安全, 联系微信号: Anroak ``` 如下所示就是成功连接上了控制台 ![输入图片说明](codefort-img1.jpg) 在控制台目前可以进行信息提示操作和强制下线操作,如下所示 ![输入图片说明](codefort-img2.png) ``` [13:48:13.754-INFO] 这个先关闭了,有啥事儿,再联系我 [13:48:15.305-INFO] 此服务已被强制下线!如有疑问请联系管理员或开发者 ``` ### 远程配置 如果要启用远程管理请注意codefort-web项目下的application.yml的codefort.port参数请注意和打包插件的端口一致, 其次是coffee.lucks.codefort.unit.ServerConst.rsaKey的值是私钥,需要和打包时的rsaPublicKey公钥对应。 ```yml codefort: # socket端口 port: 7007 # 管理平台账号 user: admin # 管理平台密码 password: 123456 ```