客户端生成指南

客户端不需要单独编译。主控内置了各平台的基础程序,生成时把上线信息(主控地址、端口、协议、分组、加密方式等)写进程序,产出可直接分发的文件(个别类型是两个文件)。

前置条件

  • 主控已经能正常运行,并且你知道它的公网 IP 或域名与上线端口。
  • 要改客户端代码或资源后再生成,先看 自定义构建指南。
  • 第一次部署整体流程见 快速部署指南。

打开生成窗口

点击主控工具栏的「服务生成」按钮(鼠标悬停可看到提示),弹出「生成服务端」对话框。 主控地址与端口会按主控已有配置预填(发布版存在注册表,调试版是程序目录的 settings.ini),一般只需确认即可。

对话框分两组:

  • 通用:服务程序、架构、模式、主控 IP、协议、加密、分组名称、Port、加壳——每次生成都要确认;
  • 高级(非必填项):安装目录、程序名称、载荷类型、程序增肥、下载服务——不改就用默认值。

右上角「设置」菜单里还有几个一次性选项,见文末「设置菜单」。

通用参数

服务程序

「服务程序」下拉框决定产物类型、以及客户端以什么方式上线。默认 TestRun - 内存DLL。

选项产物说明
TestRun - 磁盘DLLTestRun.exe + ServerDll.dll加载同目录下的 ServerDll.dll,两个文件必须一起分发
TestRun - 内存DLLTestRun.exe向主控请求 DLL,收到后在内存中执行,只需一个 exe
TestRun - 注入任务管理器TestRun.exe把内存 DLL 加载器注入任务管理器,再由它拉取核心 DLL;仅 64 位可用
ghost.exeghost.exe单文件,核心功能都在里面,无 DLL 依赖
ServerDll.dllServerDll.dll核心模块,加载即上线,可用 Rundll32.exe 调用
TinyRun.dllTinyRun.dll通过 socket 请求 ServerDll.dll 的 shellcode 并执行
ghost.exe - Windows 服务ghost.exe服务 + 代理架构:安装服务并启动代理,解决锁屏后无法远控的问题
TestRun - Windows 服务TestRun.exe同上;安装服务需要管理员权限
ghost - Linux x64ghostLinux 受控端,不支持加壳与增肥
ghost - Apple MacOSghostmacOS 受控端
ghost - Google Androidghost.apkAndroid 受控端,生成的 APK 用 sign_apk.bat 重签后再安装
ghost - SYSTEMghost.exe以 SYSTEM 权限运行(v1.3.8+),锁屏 / 无用户会话场景也能远控
TestRun - SYSTEMTestRun.exe同上,走内存 DLL 加载
选择文件你选的文件把你已编译好的程序作为基础,只写入上线信息

选 Windows 服务类选项时,记得在「设置」菜单里勾选「提权安装」,否则安装服务可能失败。 TestRun - 磁盘DLL 生成后还会提示你同时生成 ServerDll.dll,否则程序无法运行。

系统架构

  • 64位(默认):推荐,错误处理更好、更稳定。
  • 32位:适合老旧系统,也能在 64 位 Windows 上运行。

「TestRun - 注入任务管理器」只支持 64 位——注入器与目标进程的位数必须一致。

主控IP地址

  • 填 IP 或域名,不要带 http://、https:// 之类的前缀。
  • 多个地址用英文分号 ; 分隔,总长度不超过 99 个字符,地址数量不限。
  • 有公网 IP 就填公网地址;没有公网 IP 或自动识别不准时改填局域网 IP,此时客户端只能在内网上线。
  • 用 WebSocket / WS+TLS 协议时,这里填反向代理的域名。

上线端口(Port)

只能填一个端口,就是主控监听端口(生成时按配置预填,默认 6543)。 自 v1.1.2 起,同一端口同时监听 TCP 与 UDP,不需要为不同协议开两个端口。

上线模式

多个主控地址时才有区别:

  • 随机上线(默认):随机选一个地址尝试,失败后再随机换下一个。
  • 并发上线:同时向多个地址发起连接,谁先成功用谁。

上线协议

  • TCP(默认)
  • UDP、HTTP、KCP:可用,但稳定性视网络而定,可能出现无法上线或掉线。
  • 随机:在 TCP / UDP / HTTP 中随机选一种。
  • WebSocket / WS+TLS(v1.4.2+):经 nginx 等反向代理(443)转发到主控端口,只放行 80/443 的网络也能上线;地址要填域名。

用 KCP 时,主控的 UDP 协议参数需要设为 1,否则客户端上不了线。 用 WebSocket / WS+TLS 时,反向代理要配上对应的升级路径,否则握手失败。

加密类型

  • Shine:不加密,抓包能看到固定包头,排障方便。
  • HELL(默认):抗流量分析,没有固定包头,数据经过混淆。

分组名称

客户端上线后显示在哪个分组,最多 23 个字符,默认 default。 服务端也可以按分组筛选、动态下发分组,这里的值相当于「初始分组」。

加壳

选项说明
无不加壳
UPX调用 UPX 压缩壳。压缩是异步执行的,对话框关掉后仍会在后台完成,留意提示
ShellCode AES转为带 AES 混淆的 shellcode 并套上默认加载器。首次选择会提示:追加到程序尾部的载荷可能在某些服务器系统上无法运行,需自行验证
PE->ShellCode转为 shellcode,同时仍可作为普通 PE 直接运行
ShellCode AES<Old>旧版加载器的 ShellCode AES,兼容性优先(当前默认值)
ShellCode BIN只输出裸 shellcode 二进制,由你自己套加载器
SC AES<Old> + UPX旧版加载器方案再叠一层 UPX

Linux、macOS、Android 三种服务程序会强制把加壳设为「无」并清零增肥——它们不支持这些处理。

载荷类型

只有选 ShellCode AES 时才出现,决定 shellcode 载荷写到哪里:

选项说明
载荷写入当前程序尾部一个文件直接运行,最省事
载荷写入单独的二进制文件载荷写进单独的 .bin 文件,需与加载器同目录
载荷写入 BMP / JPG / PNG载荷藏在图片文件里,需与加载器同目录
载荷写入 ZIP / PDF载荷附加在压缩包 / PDF 末尾,需与加载器同目录

后几种会弹出文件选择框,让你指定承载文件。生成后:勾选了「下载服务」的,载荷要放进主控目录的 Payloads 文件夹;没勾选的,载荷要与加载器放在同一目录。

高级(非必填项)

安装目录

组合框决定程序落地位置,默认 ProgramData:

  • ProgramData、APPDATA、LOCALAPPDATA:一般用户权限即可写入(个别系统策略收紧时需要管理员)。
  • ProgramFiles - Admin、SystemRoot - Admin:需要管理员权限。

「子目录」和「程序名称」可以改成自己的名字(只允许合法的 Windows 文件名,非法字符会被自动剔除); 勾选「设置 → 随机名称」则由主控生成随机名字,适合批量分发。

程序增肥

滑块给产物尾部追加填充数据,0 到约 256 MB,鼠标悬停滑块能看到当前值。 增肥只改变文件体积与哈希,不改变行为,用来让每台机器的产物看起来不一样。

下载服务

勾选后,由主控内置的 Web 服务(默认端口 8080)对外提供载荷下载:

  • 载荷文件要放到主控目录的 Payloads 文件夹里;
  • 下载地址省略时默认用本机地址,也可以填自己的 CDN / 对象存储(前缀 http:// 或 https://)。

适合「先投一个小加载器,运行后再去下载真正载荷」的分发方式。

设置菜单

对话框标题栏右上角「设置」菜单里有:

  • 参数详解:打开本文对应的在线文档(GitHub wiki 的「生成参数」)。
  • 加密 IP:把写入程序的上线信息整体加密,静态扫描不易直接读出主控地址。注入与 TinyRun 两种方式不适用。
  • 随机名称:随机生成安装子目录与程序名称;再点一次取消。
  • 提权安装:客户端运行时请求管理员权限,可能触发 UAC 提示。安装 Windows 服务必须勾选。
  • 标识信息:自定义定位占位符用的标识。高级用法,一般保持默认。

生成之后

  1. 产物写在主控程序所在目录,文件名见「服务程序」一列。
  2. 把产物在目标机器上运行,主控在线列表里出现对应主机即为成功。
  3. 双击可看远程桌面,右键可做文件、终端、系统管理等操作,见 日常使用手册。
  4. 分发前先在目标环境实测一遍。被控端必须知情同意,未经授权的部署属违法行为。

常见问题

「出现内部错误,未能找到标识信息」 选的文件不是主控支持的基础程序(或它的标识已被破坏)。重新选一个「服务程序」,或者用主控自带的程序做基础。

「客户端版本比主控程序更高,无法生成」 拿到的客户端程序比当前主控新。换成与主控同版本或更老的客户端程序。

「Shellcode 只能向 64 位电脑注入」 「TestRun - 注入任务管理器」只能选 64 位架构。

生成后客户端不上线 按顺序排查:主控地址与端口是否可达 → 防火墙 / NAT 是否放行 → 协议是否被网络拦截(KCP 检查 UDP 参数、WS 检查反代)→ 服务类选项是否勾选了提权安装 → 目标机安全软件是否拦截。

UPX 压缩好像没生效 UPX 是异步执行的,生成对话框关掉后可能还在压缩,稍等并留意提示信息。

产物被杀毒软件拦截 加壳、注入、SYSTEM 等选项更容易触发拦截,属于预期行为;请只在本人拥有或获授权的设备上使用。