Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
XEngine_Authorize V3.21.0.1001

增加:http 用户可以获取用户时间信息
更新:cdkey管理器序列号类型
优化:获取用户时间处理流程
修改:加密通信支持英文字母密码了
修改:序列号生成检测
修正:用户等级修改不正确的问题
修正:插入序列号失败的问题
修正:重置密码错误

added:get time info for http user
update:cdkey management serial type
improved:get user time protocol process
modify:crypt communication pass word support
modify:serial generator check
fixed:user level incorrect when modify user info
fixed:insert serial number failure
fixed:reset password is incorrect
================================================================
XEngine_Authorize V3.20.0.1001

ci:centos and alma linux and debian 13 system support
Expand Down
38 changes: 30 additions & 8 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,36 @@ address:app.xyry.org
port :tcp port 5300,websocket port 5301,http management port 5302,Transmission verification password: no encryption

## Screenshot of the program
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/1.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/2.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/3.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/4.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/5.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/6.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/7.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/8.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_1.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_2.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_3.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_4.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_5.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_6.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_7.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_8.png "在这里输入图片标题")

## No-Code License Authorization & Verification Support
#### app packet service
If you don't have software development capabilities, don't want to implement it yourself, or want to add authorization verification to other software, we also provide an authorization packaging service, which allows your program to directly package our verification.
Program Packaging Service is a paid service, and you can package and add verification to any program. You can integrate our verification service without requiring source code or modifying your program. After packaging is complete, when it is run next time, our verification client will run first, and then your provided program will run after verification is successful, which is very convenient to use.
This service is paid, priced at 200 per package. It supports both x86 and x64 programs, and only requires you to provide your server address, port, and verification mode. The process is as follows:
Payment → Send the program to us → We package it → Verification testing → Send the packaged program to you → Completed
After packaging, when the program is launched, the following window will open first. Only after a successful login will your program start. As shown below, once launched, the main interface will be displayed. After login, the main interface will close and your program will then start.
![Main Interface](./XEngine_Picture/packet_1.png "Main Interface")
![CDKEY Login](./XEngine_Picture/packet_2.png "CDKEY Login")
![User Registration](./XEngine_Picture/packet_3.png "User Registration")
![User Recharge](./XEngine_Picture/packet_4.png "User Recharge")
![Password Recovery](./XEngine_Picture/packet_5.png "Password Recovery")
![Remaining Time](./XEngine_Picture/packet_6.png "Remaining Time")

The verification timer will automatically stop. Supported features include login, local CDKEY verification, registration, recharge, password recovery, and remaining time query.
Note: This feature is only a packaging replacement. If you require full encryption, shell protection, and higher security, you must implement it yourself through code development.
#### Packager
We can also provide the original packager if you have more packaging needs. The packager is currently in a promotional campaign, 500 yuan.
You can choose our verification program, then select the program you want to package. Then select the configuration file, and that's it. It supports automatically updating the program icon to your software icon.
Configuration file supports configuring encryption and decryption communication and authentication mode
![Main Interface](./XEngine_Picture/packer_1.png "Main Interface")

## Participate in contribution

Expand Down
38 changes: 30 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,36 @@ Linux or macos:直接运行即可
端口:http 5302 用于服务端管理 传输验证密码:无加密

## 程序截图
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/1.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/2.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/3.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/4.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/5.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/6.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/7.png "在这里输入图片标题")
![输入图片说明](https://www.xyry.org/XEngine_StructPic/authorize/8.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_1.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_2.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_3.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_4.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_5.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_6.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_7.png "在这里输入图片标题")
![输入图片说明](./XEngine_Picture/authorize_8.png "在这里输入图片标题")

## 无代码授权验证支持
#### 程序打包服务
如果你没有开发软件能力或者不想自己实现或者想给其他软件添加授权验证,我们也提供了授权打包服务,这个服务可以直接让你的程序打包我们的验证.
程序打包服务是一个付费服务,你可以为任意程序打包加验证.不需要源代码不修改你的程序就可以集成我们的验证服务,当打包完成后,当下次运行,就会先运行我们的验证客户端,验证通过后再运行你提供的程序,非常方便使用.
此服务需要付费,200元3次,不限制x86或者x64位程序,你只需要告诉我们你的服务器地址端口验证模式即可.流程如下:
付费->发送程序给我们->我们打包->测试验证->发送打包程序给你->完成
当打包后,运行程序会优先打开下面的窗口,登录成功后才会启动你的程序,如下图,开启后会显示主界面,登录后主界面会关闭,然后启动你的程序
![主界面](./XEngine_Picture/packet_1.png "主界面")
![CDKEY登录](./XEngine_Picture/packet_2.png "CDKEY登录")
![用户注册](./XEngine_Picture/packet_3.png "用户注册")
![用户充值](./XEngine_Picture/packet_4.png "用户充值")
![找回密码](./XEngine_Picture/packet_5.png "找回密码")
![剩余时间](./XEngine_Picture/packet_6.png "剩余时间")

会自动结束验证计时.支持登录,本地CDKEY验证,注册,充值,找回密码,获取剩余时间.
注意:此功能只是替代打包,如果你想要完全的加密加壳安全性高的,必须自己使用代码开发.
#### 打包器
我们也可以提供原始打包器,如果你有更多打包需求.打包器目前优惠活动中,500元.
可以选择我们的验证程序,然后选择你要打包的程序.在选择配置文件即可,支持自动更新程序图标为你的软件图标.
配置文件支持配置加解密通信和验证模式
![主界面](./XEngine_Picture/packer_1.png "主界面")

## 参与贡献

Expand Down
Binary file modified XEngine_Docment/Docment_en.docx
Binary file not shown.
Binary file modified XEngine_Docment/Docment_zh.docx
Binary file not shown.
Binary file added XEngine_Picture/authorize_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/authorize_8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packer_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added XEngine_Picture/packet_6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified XEngine_Release/APPVer.key
Binary file not shown.
2 changes: 1 addition & 1 deletion XEngine_Release/XEngine_Config/XEngine_Config.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
},
"XCrypto": {
"bEnable": false,
"nPass": 123123
"tszPassKey": "123123aa"
},
"XApiVer": {
"bEnable": false,
Expand Down
3 changes: 2 additions & 1 deletion XEngine_Release/XEngine_Config/XEngine_VersionConfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"XVer":[
"V3.21.0.1001 Build20251223",
"V3.20.0.1001 Build20251104",
"V3.19.0.1001 Build20250821",
"V3.19.0.1001 Build20250826",
"V3.18.0.1001 Build20250510",
"V3.17.0.1001 Build20250305",
"V3.16.0.1001 Build20250113",
Expand Down
Binary file modified XEngine_Release/XEngine_DataBase/SQL_User.db
Binary file not shown.
2 changes: 1 addition & 1 deletion XEngine_SQL/sqlite.sql
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
Target Server Version : 3045000 (3.45.0)
File Encoding : 65001

Date: 20/08/2025 11:10:20
Date: 22/12/2025 11:12:05
*/

PRAGMA foreign_keys = false;
Expand Down
2 changes: 1 addition & 1 deletion XEngine_Source/AuthorizeModule_Configure/Config_Define.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ typedef struct
}st_XLogin;
struct
{
XCHAR tszCryptoKey[32]; //加密传输密钥
bool bEnable; //是否启用加密传输
int nPassword; //密码
}st_XCrypto;
struct
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
}
Json::Value st_JsonXCrypto = st_JsonRoot["XCrypto"];
pSt_ServerConfig->st_XCrypto.bEnable = st_JsonXCrypto["bEnable"].asBool();
pSt_ServerConfig->st_XCrypto.nPassword = st_JsonXCrypto["nPass"].asInt();
_tcsxcpy(pSt_ServerConfig->st_XCrypto.tszCryptoKey, st_JsonXCrypto["tszPassKey"].asCString());
//接口验证
if (st_JsonRoot["XApiVer"].empty() || (5 != st_JsonRoot["XApiVer"].size()))
{
Expand Down
1 change: 1 addition & 0 deletions XEngine_Source/XAuth_Protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#define ERROR_AUTHORIZE_PROTOCOL_PERMISSION 0x116 //用户权限错误
#define ERROR_AUTHORIZE_PROTOCOL_EXPIRED 0x117 //已经过期
#define ERROR_AUTHORIZE_PROTOCOL_CDKEY 0x118 //CDKEY错误
#define ERROR_AUTHORIZE_PROTOCOL_PARSE 0x119 //协议解析错误
//////////////////////////////////////////////////////////////////////////
#define ERROR_AUTHORIZE_PROTOCOL_SERVER 0x201 //服务端内部错误
#define ERROR_AUTHORIZE_PROTOCOL_LIMIT 0x202 //服务端内部限制,数据过大后者过小
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ BOOL CDialog_CDKey::OnInitDialog()
USES_CONVERSION;
m_ComboRegSerial.InsertString(i, A2W(lpszXSerialType[i]));
}
for (int i = 0; i < 6; i++)
for (int i = 0; i < 9; i++)
{
USES_CONVERSION;
m_ComboRegType.InsertString(i, A2W(lpszXRegType[i]));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ void CDialog_Modify::OnBnClickedButton2()
strcpy(st_UserTable.tszLeftTime, W2A(m_StrUserInfo.GetBuffer()));

st_UserTable.enSerialType = (ENUM_VERIFICATION_MODULE_SERIAL_TYPE)m_ComboSerial.GetCurSel();
st_UserTable.st_UserInfo.nUserLevel = m_ComboLeave.GetCurSel() - 1;
st_UserTable.st_UserInfo.nUserLevel = m_ComboLeave.GetCurSel();

Json::Value st_JsonRoot;
Json::Value st_JsonTable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,25 +194,33 @@ void CDialog_Serial::OnBnClickedButton2()
CString m_StrIPAddr;
CString m_StrIPPort;
CString m_StrToken;
CString m_StrHasTime;
CString m_StrSerialCount;
CString m_StrNumberCount;
CString m_StrExpiredTime;

XCHAR tszUrlAddr[XPATH_MAX];
CDialog_Config* pWnd = (CDialog_Config*)CDialog_Config::FromHandle(hConfigWnd);

memset(tszUrlAddr, '\0', XPATH_MAX);
pWnd->m_EditIPAddr.GetWindowText(m_StrIPAddr);
pWnd->m_EditIPPort.GetWindowText(m_StrIPPort);
pWnd->m_EditToken.GetWindowText(m_StrToken);
m_EditExpiredTime.GetWindowText(m_StrExpiredTime);
m_EditHasTime.GetWindowText(m_StrHasTime);
m_EditSerialCount.GetWindowText(m_StrSerialCount);

CString m_StrHasTime;
CString m_StrSerialCount;
CString m_StrNumberCount;
CString m_StrExpiredTime;
if (m_StrHasTime.IsEmpty() || m_StrSerialCount.IsEmpty())
{
AfxMessageBox(_T("必须配置卡拥有的时间和生成数量"));
return;
}

Json::Value st_JsonRoot;
Json::Value st_JsonArray;
Json::Value st_JsonObject;

m_EditExpiredTime.GetWindowText(m_StrExpiredTime);
m_EditHasTime.GetWindowText(m_StrHasTime);
m_EditSerialCount.GetWindowText(m_StrSerialCount);

m_ComboNumber.GetLBText(m_ComboNumber.GetCurSel(), m_StrNumberCount);
USES_CONVERSION;
XCHAR tszTimeStr[XPATH_MIN] = {};
Expand Down
Loading
Loading