CTHackFramework 通用外挂框架
概述
CTHackFramework是一个基于C++的通用外挂框架,可用于制作游戏外挂、修改器,软件破解机、注册机等程序。
该框架下包含了大量用于游戏外挂制作的类,函数与工具包,以供支持游戏外挂的快速开发。同时包含了一套外挂的软件架构,使该框架下的外挂具有稳定,高效的特性,同时使得外挂的扩展性与兼容性得以保证。
目前仅为开发阶段,许多功能未形成稳定版本,所以并未加入该框架,例如Dll注入,封装好的D3D等,如果感兴趣,这些功能可以在示例工程中看到。目前框架非常简陋,所以需要将这些实验性功能逐步加入,使得框架更具有实际工程意义,而非目前的空架构。
框架结构
框架的结构图如下。
Memory为内存模块,包含各类对目标进程的内存进行读取,写入,扫描等函数,负责对目标进程的内存进行操作。
Process为进程模块,包含对进程信息的获取与各类对进程的相关操作函数,如获取进程pid,句柄,查询进程加载的模块信息,进程的内存信息等等。并且包含一组封装好的进程内存数据读取函数,可以从目标进程中读取各种宽度的整形,浮点,布尔值等,同时也可以直接读取一段字节。反之,也可写入数据。如果多个外挂供能需要独立读写数据,则可以将Process改为Singleton,并将读取方法设计为static方法,并添加信号量保证互斥访问,从而多线程同时访问。
Game为游戏信息模块,主要包含两个部分GameStruct和GameData,其中GameStruct包含了关于游戏或者目标程序的相关结构体的定义,比如玩家类的结构,坐标结构,武器属性的结构等,而GameData包含了从游戏进程中获取到的各类数据以及外挂相关数据等。Manager通过Process将外挂所需的数据读取出来,并存储于GameData中以供各个功能子模块和GUI,Overlay等使用。
Function为功能子模块,即一种外挂功能,每个Function直接从GameData中直接获取相关数据,而数据的读取由Manager进行。同时,Manager也负责对于每个Function子功能模块进行管理,如启用停用等,并通过配置文件进行子功能模块的配置。功能子模块与整个程序的耦合程度较轻,方便模块的移植与修改。 其中,占用资源与时间较少,逻辑简单,实现软实时任务的子功能模块可以在Manager线程下运行,而相对重量级,执行硬实时任务,功能复杂的子模块,通常单独在一个新的线程中运行。这些线程也由Manager进行管理。
Manager是整个架构的核心,其负责整个架构的运转,其职能主要是:
- 通过Process,实现对目标进程的信息读取,内存操作等。
- 将读取到的数据等存储进GameData中。
- 负责管理Function子功能模块。
- 负责处理KeyBoard与Mouse等外设的输入。
- 负责通过Config配置文件进行程序配置
GUI为用户界面。可以使用.NET框架,将一部分C++托管,使用WinForm,在CLR下运行,也可以使用Qt,ImGUI等其他框架。
Overlay为悬浮界面,覆盖于目标程序窗口之上,背景透明且不响应任何消息,窗口消息透传至下一层即目标程序。主要负责透视框,外挂信息,游戏信息等的显示。使用DirectX11,基于微软的DirectXTK库,见Microsoft DirectXTK。
另外关于GUI与Overlay,可以通过api hooking,hook目标程序的D3D设备,从而将其绘制与游戏内,从而减少窗口模式对游戏性能的消耗。
特性
- 支持x86/x64。
- 包含AoB扫描,支持使用通配符进行模糊扫描。
- DLL注入器,支持DLL注入。(详见示例工程)
- DirectXTK,并进行了封装,便于Overlay设计。(详见示例工程)
- 一个通用WinForm GUI,基于C++/CLR。(Winform版未发布,已经改用ImGui)
使用方法
1. 基于目标程序,向GameStruct添加外挂所需要的结构定义。
2. 根据各个功能子模块需求,编写逻辑并将需要的数据写入GameData,向相关配置参数写入Config。
3. 根据功能编写Manager,进行进程的信息获取,内存数据读取,处理外设输入,管理功能子模块等。
4. 编写用户UI,Overlay等。
示例工程
Counter-Strike: Global Offensive 外部外挂: CSGO External Hack
主要功能:ESP透视(DirectX Overlay),Glow透视,雷达显人,bHop,自动扳机,自瞄等。
Counter-Strike: Global Offensive 内部外挂: CSGO Internal Hack
主要功能:自动扳机,自喵,微自瞄,自动压枪,Glow透视,雷达显人,bHop,改枪皮,改刀等。
声明
- 本程序仅为通用框架并非完整的具有功能的外挂,需要在该框架的基础上进行二次开发从而实现特定的功能。
- 本程序作为外挂框架,并未将防检测纳入考量,请勿在受反外挂程序保护的服务器上使用。
- 本程序作为游戏外挂使用时,仅限单机游戏使用,请勿在多人游戏中作弊。
- 本程序作为其他用途时,请勿用于破坏网络安全,盗取个人信息,危害社会治安等用途,产生的一切后果与本程序无关。
- 本程序仅限交流学习使用,请勿用于商业活动,转载或使用代码,请注明出处。
欢迎对代码进行完善修改,增加新功能,本程序基于MIT开源许可证发行,更多请参阅许可证说明。
关于
更多详情请见天师苍邪科技官方网站: Celestial Tech
Copyright © 2019 Celestial Tech