Files
MemShellParty/CONTRIBUTING.md
T
2025-02-15 23:31:52 +08:00

70 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 目录结构
- bom: 依赖版本管理,不用写到处写版本号就是舒服
- boot:使用 SpringBoot 为 UI 提供生成服务
- commonbytebuddy 等工具类存放
- generator:内存马生成核心
- deserialize:反序列化相关 gadget
- integration-test:集成测试用例
- memshell:内存功能类以及注入器(为保证兼容性够高,所以单独弄出来)
- memshell-java8Spring 相关的存在 lambda 表达式所以单独弄出来
- tools/behinder:冰蝎简易连接器
- tools/godzilla:哥斯拉简易连接器
- tools/suo5Suo5 简易连接器
- web:使用 react 开发的 Web UI
- vul/vul-webapp:简易的 javax.servlet 靶场
- vul/vul-webapp-expression:简易的表达式注入、SSTI 注入相关靶场
- vul/vul-webapp-jakarta:简易的 jakarta.servlet 靶场
- vul/springboot*: springboot 相关靶场
### 编译
整个项目需要使用 JDK17 进行编译运行,由于集成测试用例过多,请不要在本地执行,使用构建命令时指定目标模块
```bash
# 编译 generator 模块
./gradlew :generator:build
# 运行集成测试用例,谨慎运行,用例太多了
./gradlew :integration-test:test --info
# 仅运行 tomcat 下的集成测试用例
./gradlew :integration-test:test --tests '*.tomcat.*'
# 仅运行 jetty 下的集成测试用例
./gradlew :integration-test:test --tests '*.jetty.*'
# 构建 war 包
./gradlew :vul:vul-webapp:war
./gradlew :vul:vul-webapp-jakarta:war
./gradlew :vul:vul-webapp-expression:war
```
### SpringBoot + React 前端编译
UI 采用的 React SPA + SpringBoot,构建时需要先将 React 前端项目编译之后移动到 SpringBoot 中的 static 和 templates 中。
构建和打包流程参考 CI。
开发流程:
1. 先启动后端服务,`./gradlew :boot:bootRun`
2. 接着启动前端服务,`cd web && bun install && bun run dev`
打包流程:
1. 先打包前端项目,`bun run build`
2. 再打包后端项目,`./gradlew :boot:bootJar`
### Contribute Code
> 参考 GitHub Docs https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project
1. fork 当前项目
2. git clone 自己 fork 后的项目
3. 创建一个新的分支来编写代码和添加测试用例
4. git push 你的代码
5. 创建 pull request
<hr>
**for free to make a pull request or write a issue 🎉**