Tip
该分支已停止维护 请参见本仓库的pure-53644分支 pure-53644分支是LagrangeV2SignApi格式 puresign版本为3.2.34-53644 所以请自己配置appinfo版本(Lagrange默认46494)如您不想配置 可以使用我Fork的Lagrnage.MilkyLagrange.Core Fork 该版本已内置自动从签名服务器获取Appinfo版本 或者使用EulerOnebot
这是一个基于 ASP.NET Core 10 重写的 NTQQ 签名服务器
NTQQ-SignServer/
├── Controllers/ # API 控制器
│ └── SignController.cs
├── Models/ # 数据模型
│ ├── SignRequest.cs
│ └── AppSettings.cs
├── Services/ # 业务服务
│ ├── ISignService.cs
│ ├── SignService.cs
│ └── StartupService.cs
├── Program.cs # 程序入口
├── appsettings.json # 配置文件
├── NTQQ-SignServer.csproj # 项目文件
└── README.md # 说明文档
确保已安装 .NET 10 SDK: cd到QQApp目录,运行gcc -std=c99 -shared -fPIC -o libsymbols.so symbols.c 生成so文件
编辑 appsettings.json 文件,配置签名服务参数:
{
"AppSettings": {
"SignService": {
"Host": "127.0.0.1",
"Port": 8080,
"Libs": ["libgnutls.so.30", "./libsymbols.so"],
"Offset": "0x0",
"MaxDataLength": 1048576,
"TimeoutMs": 5000
}
}
}# 进入项目目录
cd NTQQ-SignServer
# 恢复 NuGet 包
dotnet restore
# 运行服务器
dotnet run服务器将在 http://localhost:8080 启动。
POST /api/sign
请求体:
{
"cmd": "wtlogin.login",
"src": "0102030405060708",
"seq": 1
}响应:
{
"value": {
"token": "A1B2C3D4E5F6...",
"extra": "G7H8I9J0K1L2...",
"sign": "M3N4O5P6Q7R8..."
}
}GET /api/sign/appinfo
返回从appinfo.json读取的应用配置信息。
GET /api/sign/appinfo_v2
返回从appinfo.json读取的应用配置信息,并转译为Lagrange v2格式。
GET /api/sign/health
返回服务器健康状态。
GET /api/sign/status
返回签名服务状态。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| Host | string | 127.0.0.1 | 服务器监听地址 |
| Port | int | 8080 | 服务器监听端口 |
| Libs | string[] | ["libgnutls.so.30", "./libsymbols.so"] | 依赖库列表 |
| Offset | string | "0x0" | 签名函数偏移量 |
| MaxDataLength | int | 1048576 | 最大数据长度(1MB) |
| TimeoutMs | int | 5000 | 超时时间(毫秒) |
日志级别可以在 appsettings.json 中配置:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"NTQQ_SignServer": "Information"
}
}
}-
端口被占用
# 查找占用端口的进程 netstat -tulpn | grep 8080 # 或者修改 appsettings.json 中的端口号
-
依赖库加载失败
- 确保
libgnutls.so.30和libsymbols.so在系统路径中 - 或者修改 Libs 配置为正确的库路径
- 确保
-
签名函数偏移量错误
- 检查 Offset 配置是否正确
- 确保 wrapper.node 文件存在且版本匹配
服务器启动时会输出详细的日志信息,可以通过以下方式查看:
# 查看控制台输出
dotnet run
# 或者查看系统日志
journalctl -u ntqq-signserver- 在
Controllers/目录下创建新的控制器 - 在
Models/目录下定义请求/响应模型 - 在
Services/目录下实现业务逻辑
所有配置都在 appsettings.json 中管理,支持开发和生产环境的不同配置。
本项目基于 AGPL-3.0 许可证开源。
欢迎提交 Issue 和 Pull Request 来改进这个项目。