文章总结: 本专栏从winos-gh0st源码出发,面向企业安全、蓝队检测和授权红蓝测试人员,提供WindowsC++/MFC远控工程拆解教程。核心目标包括帮助新手理解工程结构、企业安全人员转化检测思路、授权测试人员复盘技术链路。专栏覆盖环境搭建、主控架构、网络协议、插件加载及系统管理等功能模块,强调合法使用和防御视角。 综合评分: 88 文章分类: 安全培训,红队,内网渗透,安全建设,实战经验
安全工程专栏导航:从 winos-gh0st 源码学安全工程
原创
安全研究员 安全研究员
CppGuide
2026年7月3日 14:24 上海
在小说阅读器读本章
去阅读
免责声明:本专栏仅用于安全工程学习研究,禁止使用本专栏介绍的技术做其他用途,否则后果自负,与本号无关。
这套专栏不是远控使用教程,而是一套面向企业安全、蓝队检测、安全研发、授权红蓝测试人员和安全工程学习者的源码拆解教程。
它的核心目标只有三个:
- 让新手能顺着源码看懂 Windows C++/MFC 远控类工程的结构、通信、插件和数据流。
- 让企业安全人员能把高风险实现转换成检测、响应、加固和合规整改思路。
- 让授权红蓝测试人员能在合法边界内复盘技术链路,帮助防御侧补齐证据、规则和流程。
怎么读最有效
| 读者类型 | 推荐路线 | 阅读目标 | | — | — | — | | Windows 安全新手 | 01-20 顺序读,再进入插件课 | 先补齐环境、MFC、网络、插件、shellcode 和被控运行结构背景 | | 企业蓝队 / SOC | 08-14、18-23、31-35、41-50 | 把源码行为转成主机、网络、内存和日志检测点 | | 授权红蓝测试人员 | 01、08-23、31-43、45-50 | 理解能力边界,用于授权演练复盘和防御验证 | | 安全研发 / 平台工程师 | 03-17、20-23、47-51 | 学习工具链、插件加载、日志链、协议安全和合规重构 | | 管理者 / 方案负责人 | 01、44-52 | 快速理解风险分级、整改路线和报告交付方式 |
学习全景
安全边界
-> VS 工具链、依赖库、MFC/Win32 基础
-> 主控架构、日志进程、网络协议、插件加载
-> EXE/DLL 生成、x86/x64、被控 shellcode 生命周期
-> 被控线程结构、网络连接结构、上线、登录、配置下发、复制和转移客户
-> 系统、文件、注册表、启动、终端、交谈、键盘记录
-> 屏幕、后台桌面、屏幕墙、视频、音频
-> 代理、压力、注入、驱动、敏感数据读取
-> 持久化、高危能力、协议缺陷、安全编码、检测工程
-> 应急响应、合规重构、企业评估报告
每一课都尽量采用同一种读法:先说明源码目录和模块角色,再沿着触发路径读关键代码;关键变量、风险点和防御含义尽量写进代码注释;图解用于帮助新手建立调用链、时序和数据结构的整体感。
第一阶段:边界、环境和源码地图
这一阶段先解决“能不能学、在哪里学、怎么打开工程、怎么看目录”的问题。读完后,你应该能在隔离实验环境中打开工程,并知道每个目录大致承担什么职责。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 01 | 专栏导论与安全边界 | 学习边界、适用人群、授权红蓝测试边界、实验环境和禁止事项 | | 02 | 源码整体结构导览 | 从根目录看主控、主插件、第三方库、生成器和专栏阅读路线 | | 03 | 安装编译与调试环境 | 面向不熟悉 VS 的新手解释工作负载、SDK、MFC、平台工具集和调试入口 | | 04 | 第三方库下载编译与依赖管理 | 理解 thirdparty、lib/libx64、头文件、库文件和依赖匹配问题 | | 05 | 工程编译顺序与调试方法 | 按安全实验方式梳理编译顺序、输出目录、断点和观察窗口 | | 06 | Windows C++/MFC 基础补课 | 快速补齐消息映射、窗口、句柄、线程、注册表和 Win32 API 基础 | | 07 | 主控界面布局单独讲解 | 从主控界面反查源码、菜单、列表、对话框和命令入口 |
第二阶段:主控、日志、网络和插件加载主线
这一阶段是整套专栏的骨架。后面的每个功能插件,都离不开主控界面、网络收发、命令分发、插件加载和日志记录。
| 课次 | 专栏 | 你会学到什么 |
| — | — | — |
| 08 | 主控端架构分析 | 主控生命周期、连接上下文、列表展示、命令发送和窗口路由 |
| 09 | 主控内嵌日志进程与通信机制 | 日志进程如何被内嵌到主控、如何启动、如何通过 IPC 接收日志 |
| 10 | 网络通信模型 | TCP/UDP、心跳、收包缓存、完整包判断和回调边界 |
| 11 | 协议与命令分发机制 | TOKEN_* 、COMMAND_*、包头、业务窗口和插件命令如何串联 |
| 12 | 插件化设计与模块加载总览 | 插件来源、版本协商、缓存、加载方式和整体风险面 |
| 13 | 插件化设计与模块加载 | 插件 DLL 如何被请求、传输、缓存、校验和调度 |
| 14 | 插件 DLL 内存加载 | MemoryModule 如何做 PE 映射、重定位、导入解析和入口调用 |
| 15 | 网络库:HPSocket | HPSocket 在工程中的用途、连接模型、回调接口和检测线索 |
第三阶段:生成链、架构适配和被控启动流程
这一阶段解释“生成出来的 EXE/DLL 是什么、配置如何写进去、x86/x64 怎么区分、shellcode 如何启动并取回上线模块,以及被控运行后线程和网络连接如何展开”。读完后,你再看上线、登录和后续插件,就不会觉得链路跳跃。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 16 | 生成 EXE 与 DLL | 主控如何选择模板、写入配置、输出 EXE/DLL,生成物在工程中的角色 | | 17 | x86/x64 双产物与 DLL 使用 | 32/64 位产物、插件目录、函数指针、结构体偏移和 DLL 使用方式 | | 18 | 被控 shellcode 生成与执行流程 | 从构建、启动、自定位、API 解析、配置读取到加载上线模块的完整生命周期 | | 19 | 生成被控五个选项下发机制 | 键盘记录、结束蓝屏、反查流量、进程守护、傀儡进程五个选项如何写入配置并下发 | | 20 | 被控线程结构与网络连接结构 | 不启用插件和启用插件时,被控端线程、基础连接、插件连接和回调绑定如何展开 | | 21 | 主插件:上线模块 | 配置解析、连接初始化、版本请求、上线链路和防御侧证据 | | 22 | 主插件:登录模块 | 登录信息结构、插件链枢纽、命令入口、缓存和心跳机制 | | 23 | 主控复制与转移客户 | 主控如何下发复制/转移命令,登录模块如何解释目标地址并改变连接归属 |
第四阶段:系统、文件、注册表和交互能力
这一阶段进入功能插件。重点不是学习如何操作,而是学习如何从代码里识别资产枚举、远程管理、路径边界、注册表修改和用户交互风险。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 24 | 主插件:系统管理 | 进程、窗口、服务、网络连接、软件列表等系统信息如何枚举 | | 25 | 主插件:文件管理 | 文件浏览、传输、搜索、压缩、删除、路径边界和审计证据 | | 26 | 主插件:查注册表 | 注册表根键、子键、值、增删改查、敏感键和 WoW64 视图 | | 27 | 主插件:启动管理 | 启动项、服务、计划任务、启动目录和持久化相关风险 | | 28 | 主插件:远程终端 | 管道、命令解释器、输出回传和命令执行审计 | | 29 | 主插件:远程交谈 | 聊天协议格式、装包解包、窗口生命周期和锁屏实现 | | 30 | 主插件:键盘记录 | 键盘记录功能、窗口标题、剪贴板、离线键盘记录开关和实现机制 |
第五阶段:屏幕能力与屏幕墙
这一阶段专门处理屏幕相关能力。先比较高速屏幕、差异屏幕、娱乐屏幕三种当前桌面采集方式,再讲后台桌面/后台窗口,最后把主控侧“加入监控/屏幕墙”作为独立看板能力讲清楚。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 31 | 主插件:高速屏幕 | 为什么叫高速屏幕、GDI 截屏、JPEG/zlib 依赖、全帧传输和检测点 | | 32 | 主插件:差异屏幕 | 差异块如何获取、如何组装成完整画面、首帧/增量帧和带宽特征 | | 33 | 主插件:娱乐屏幕 | 为什么使用 H.264、libyuv/x264、采集转换编码队列和播放流程 | | 34 | 主插件:后台桌面与后台窗口 | 后台桌面原理、技术历史、正常桌面对比、画面来源、窗口控制和能力限制 | | 35 | 主控屏幕墙与加入监控 | 主控如何把多个目标加入监控面板、定时取缩略图、刷新显示和退出监控 |
第六阶段:视频、音频、代理、注入、驱动和敏感数据
这一阶段覆盖高敏感能力。专栏只做源码阅读和防御分析,关注权限、授权、可见性、日志、检测和处置,不提供可直接复用的攻击步骤。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 36 | 主插件:视频查看 | DirectShow、摄像头枚举、采集回调、编码压缩和隐私风险 | | 37 | 主插件:播放监听 | 系统播放声音采集、WASAPI loopback、缓冲和播放监听链路 | | 38 | 主插件:语音监听 | 麦克风采集、waveIn、G.729 编码、传输和用户授权边界 | | 39 | 主插件:代理映射 | 代理中继、连接转发、内网访问路径和东西向流量检测 | | 40 | 主插件:压力测试 | 高并发流量、可用性风险、授权边界和防御控制 | | 41 | 主插件:注入管理 | 跨进程句柄、远程写入、RWX、远程线程、BoxedApp SDK 和 WoW64 线索 | | 42 | 主插件:驱动插件 | 驱动服务、设备对象、IOCTL、内核分发和高优先级响应 | | 43 | 主插件:解密数据 | 浏览器数据库、SQLite、DPAPI/OpenSSL、敏感数据读取和凭据保护 |
第七阶段:检测工程、应急响应和安全重构
这一阶段把前面的源码知识组合成企业安全交付。目标是能写规则、能做应急、能给整改方案、能形成评估报告。
| 课次 | 专栏 | 你会学到什么 | | — | — | — | | 44 | 持久化机制综合识别 | 注册表、启动目录、计划任务、服务、驱动等持久化入口的综合识别 | | 45 | 高危能力综合识别 | 输入、屏幕、音视频、代理、注入、驱动、凭据等能力的风险分层 | | 46 | 代理映射、内网扫描与横向风险 | 从代理链路理解内网暴露、横向移动风险和分段防护 | | 47 | 加密、认证与协议安全缺陷 | 弱协议、短标识、异或处理、插件可信链和加固方向 | | 48 | C/C++ 安全编码核查 | 长度、内存、句柄、线程、权限和资源生命周期问题 | | 49 | 检测工程:从源码提取行为特征 | 把 API、路径、token、结构体和时序转换成检测模型 | | 50 | 应急响应与清理思路 | 证据保全、隔离、持久化排查、账号处置和恢复验证 | | 51 | 安全重构:合规远程运维工具 | mTLS、MFA、RBAC、插件签名、用户提示、隐私最小化和审计日志 | | 52 | 综合案例:企业安全评估报告 | 把源码证据、风险分级、检测建议、整改路线和管理摘要写成报告 |
如果时间有限,优先读这些
| 必读课 | 为什么优先 | | — | — | | 01 | 先建立合法边界,避免把源码学习变成越界操作 | | 08 | 主控端是所有命令、窗口和连接状态的中心 | | 09 | 日志进程解释了主控如何做本地记录和进程间通信 | | 11 | 协议和命令分发决定了后续所有插件如何被触发 | | 14 | 插件 DLL 内存加载是理解插件体系和内存侧检测的关键 | | 18 | 被控 shellcode 生命周期把生成、启动、加载上线模块串成一条线 | | 19 | 五个生成选项解释了配置如何影响运行期行为 | | 20 | 被控线程和连接结构解释了为什么插件启用后会出现额外连接 | | 22 | 登录模块是连接、插件请求、命令执行的枢纽 | | 31-35 | 屏幕类能力是隐私和合规风险最集中的部分之一 | | 41-43 | 注入、驱动、敏感数据读取是高危响应优先级最高的部分 | | 49 | 检测工程把源码阅读转换成可落地规则 | | 50-52 | 应急、重构和报告决定企业能否真正整改 |
最终你应该获得的能力
| 能力 | 具体表现 | | — | — | | 源码定位 | 能从界面功能定位到目录、类、函数、命令和调用链 | | 数据流分析 | 能画出配置、命令、插件、文件、注册表、内存和网络之间的关系 | | 风险识别 | 能判断哪些行为涉及隐私、凭据、持久化、横向、注入和内核风险 | | 检测工程 | 能把 API、路径、token、结构体和时序转成日志字段、规则和关联逻辑 | | 应急响应 | 能保全证据、隔离资产、排查持久化、处理账号风险并验证恢复 | | 安全重构 | 能把高风险远控能力改造成有身份、有授权、有审计、有用户提示的合规远程运维设计 | | 报告交付 | 能写出管理层看得懂、研发能整改、安全团队能落地的企业安全评估报告 |
这套专栏的价值不在于复现某个功能,而在于训练一种安全工程能力:面对复杂、高风险、历史包袱很重的 Windows C++ 工程,仍然能把它拆清楚、讲明白、检测到、整改掉。
源码获取
如果对银狐(winos)有兴趣,可以通过下面的方式获取全套源码:
关注后回复【winos】即可获取源码
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:CppGuide 安全研究员 安全研究员《安全工程专栏导航:从 winos-gh0st 源码学安全工程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论