Feature: Add encryption option for client building

This commit is contained in:
yuanyuanxiang
2025-07-13 03:55:33 +08:00
parent db6b55d59b
commit 41295ca03b
12 changed files with 122 additions and 50 deletions

Binary file not shown.

View File

@@ -2735,15 +2735,20 @@ void CMy2015RemoteDlg::OnListClick(NMHDR* pNMHDR, LRESULT* pResult)
CString res[RES_MAX];
CString startTime = ctx->GetClientData(ONLINELIST_LOGINTIME);
ctx->GetAdditionalData(res);
FlagType type = ctx->GetFlagType();
static std::map<FlagType, std::string> typMap = {
{FLAG_WINOS, "WinOS"}, {FLAG_UNKNOWN, "Unknown"}, {FLAG_SHINE, "Shine"},
{FLAG_FUCK, "FUCK"}, {FLAG_HELLO, "Hello"}, {FLAG_HELL, "HELL"},
};
// 拼接内容
CString strText;
std::string expired = res[RES_EXPIRED_DATE];
expired = expired.empty() ? "" : " Expired on " + expired;
strText.Format(_T("文件路径: %s%s\r\n系统信息: %s 位 %s 核心 %s GB\r\n启动信息: %s %s\r\n上线信息: %s %d"),
strText.Format(_T("文件路径: %s%s\r\n系统信息: %s 位 %s 核心 %s GB\r\n启动信息: %s %s\r\n上线信息: %s %d %s"),
res[RES_PROGRAM_BITS].IsEmpty() ? "" : res[RES_PROGRAM_BITS] + "", res[RES_FILE_PATH],
res[RES_SYSTEM_BITS], res[RES_SYSTEM_CPU], res[RES_SYSTEM_MEM], startTime, expired.c_str(),
ctx->GetProtocol().c_str(), ctx->GetServerPort());
ctx->GetProtocol().c_str(), ctx->GetServerPort(), typMap[type].c_str());
// 获取鼠标位置
CPoint pt;

View File

@@ -74,12 +74,14 @@ void CBuildDlg::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_COMBO_BITS, m_ComboBits);
DDX_Control(pDX, IDC_COMBO_RUNTYPE, m_ComboRunType);
DDX_Control(pDX, IDC_COMBO_PROTO, m_ComboProto);
DDX_Control(pDX, IDC_COMBO_ENCRYPT, m_ComboEncrypt);
}
BEGIN_MESSAGE_MAP(CBuildDlg, CDialog)
ON_BN_CLICKED(IDOK, &CBuildDlg::OnBnClickedOk)
ON_CBN_SELCHANGE(IDC_COMBO_EXE, &CBuildDlg::OnCbnSelchangeComboExe)
ON_COMMAND(ID_HELP_PARAMETERS, &CBuildDlg::OnHelpParameters)
END_MESSAGE_MAP()
@@ -150,6 +152,7 @@ void CBuildDlg::OnBnClickedOk()
g_ConnectAddress.SetServer(m_strIP, atoi(m_strPort));
g_ConnectAddress.runningType = m_ComboRunType.GetCurSel();
g_ConnectAddress.protoType = m_ComboProto.GetCurSel();
g_ConnectAddress.iHeaderEnc = m_ComboEncrypt.GetCurSel();
if (!g_ConnectAddress.IsValid()) {
SAFE_DELETE_ARRAY(szBuffer);
@@ -264,27 +267,16 @@ BOOL CBuildDlg::OnInitDialog()
m_ComboProto.InsertString(PROTO_HTTP, "HTTP");
m_ComboProto.SetCurSel(PROTO_TCP);
m_ComboEncrypt.InsertString(PROTOCOL_SHINE, "Shine");
m_ComboEncrypt.InsertString(PROTOCOL_HELL, "HELL");
m_ComboEncrypt.SetCurSel(PROTOCOL_SHINE);
m_OtherItem.ShowWindow(SW_HIDE);
return TRUE; // return TRUE unless you set the focus to a control
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
}
Buffer CBuildDlg::Encrypt(BYTE* buffer, int len, int method) {
switch (method)
{
case 0:// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case 1: // XOR
xor_encrypt_decrypt(buffer, len, { 'G', 'H', 'O', 'S', 'T' });
break;
default:
break;
}
return Buffer();
}
void CBuildDlg::OnCbnSelchangeComboExe()
{
auto n = m_ComboExe.GetCurSel();
@@ -335,3 +327,10 @@ void CBuildDlg::OnCbnSelchangeComboExe()
m_OtherItem.ShowWindow(SW_HIDE);
}
}
void CBuildDlg::OnHelpParameters()
{
CString url = _T("https://github.com/yuanyuanxiang/SimpleRemoter/wiki#<23><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>");
ShellExecute(NULL, _T("open"), url, NULL, NULL, SW_SHOWNORMAL);
}

View File

@@ -26,7 +26,6 @@ public:
CString m_strPort;
afx_msg void OnBnClickedOk();
virtual BOOL OnInitDialog();
Buffer Encrypt(BYTE* buffer, int len, int method);
CComboBox m_ComboExe;
afx_msg void OnCbnSelchangeComboExe();
@@ -34,4 +33,6 @@ public:
CComboBox m_ComboBits;
CComboBox m_ComboRunType;
CComboBox m_ComboProto;
CComboBox m_ComboEncrypt;
afx_msg void OnHelpParameters();
};

View File

@@ -293,6 +293,7 @@ public:
virtual int GetPort() const = 0;
virtual std::string GetProtocol() const = 0;
virtual int GetServerPort() const = 0;
virtual FlagType GetFlagType() const = 0;
public:
virtual ~context() {}
@@ -331,7 +332,7 @@ public:
Server* server; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::string GetProtocol() const override {
return "TCP";
return Parser.m_Masker && Parser.m_Masker->GetMaskType() == MaskTypeNone ? "TCP" : "HTTP";
}
int GetServerPort() const override {
return server->GetPort();
@@ -410,6 +411,9 @@ public:
BYTE GetBYTE(int offset) {
return InDeCompressedBuffer.GetBYTE(offset);
}
virtual FlagType GetFlagType() const override {
return Parser.m_nFlagType;
}
// Write compressed buffer.
void WriteBuffer(LPBYTE data, ULONG dataLen, ULONG originLen, int cmd = -1) {
if (Parser.IsParsed()) {

Binary file not shown.