bitmono-project/obfuscation-service
GitHub: bitmono-project/obfuscation-service
一个封装 BitMono 混淆器的 HTTP 微服务,为 bitmono.dev 提供进程内 .NET/Mono 程序集混淆能力,同时通过服务隔离保障前端站点的稳定性。
Stars: 0 | Forks: 0
# BitMono 混淆服务
这是在 BitMono 网站背后实际执行混淆的部分。它包装了 BitMono 混淆器(`BitMono.*` NuGet 包),并将其置于一个小型 HTTP API 之后。
它是内部的。网站([bitmono-web](https://github.com/bitmono-project))通过 Aspire 网络调用它。您不应直接请求它。
## 为什么它是一个独立的服务
特意将其与网站拆分出来的原因如下:
- 如果有人上传了损坏或超大的 assembly,混淆过程可能会在这里崩溃,而不会导致整个网站宕机。
- BitMono 经常发布新版本,因此该服务可以独立升级和重新部署,而无需触及网站。
混淆在进程内运行,仅进行静态分析([AsmResolver](https://github.com/Washi1337/AsmResolver))。它绝对不会运行您上传的 assembly。
## Endpoint
- `POST /obfuscate` — multipart form:包含一个 `file` 以及重复的 `protections` 字段(要启用的 protection 名称)。以 `application/octet-stream` 格式返回混淆后的 assembly。如果未发送任何已知的 protection,它将回退到默认级别。
- `GET /protections` — 目录:每个 protection、其作用、类别、是否稳定、任何注意事项以及它所属的级别。
- `GET /version` — 此服务所基于构建的 BitMono 版本。
- `GET /health` — 健康检查。
protection 是根据网站的请求发送的——用户在那里进行选择。关于运行哪些 protection,没有任何配置存储在此 repo 中。
## 运行它
通常您不需要手动运行它——bitmono-web Aspire AppHost 会为您启动它。
如果您确实想独立运行它:
```
cd BitMono.ObfuscationService
dotnet run
```
如果您想要一个固定的端口,请设置 `ASPNETCORE_URLS`,例如 `ASPNETCORE_URLS=http://localhost:5080 dotnet run`。
或者构建容器:
```
docker build -t bitmono-obfuscation-service .
docker run -p 8743:8743 -e HTTP_PORTS=8743 bitmono-obfuscation-service
```
Aspire 会自动设置 `HTTP_PORTS`。在独立运行时,请通过 `HTTP_PORTS` 或 `ASPNETCORE_URLS` 选择任何空闲端口。
标签:HTTP API, NIDS, 云安全监控, 代码混淆, 多人体追踪, 容器化, 请求拦截, 静态分析