免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:易道云信息技术研究院
上一个内容:89.游戏安全项目-htdSdk安装
79.游戏分析工具闪屏问题优化与数据被修改高亮 这里面有注入器与外挂模块的实现(htdSDK的实现)
作为一个游戏安全项目最少要 包含一个注入器,包含一个外挂模块
注入器是用来把外挂模块跟游戏结合起来,游戏外挂相当于是给游戏加功能它不仅仅是破坏,破坏其实也是一种功能,通过动态链接库技术加载到游戏中,注入器就是一个动态链接库技术的实现,注入器也有一个很重要的东西,那就是收费比如说注册卡密
外挂模块主要是实现外挂的功能
搭建的项目也就是注入器和外挂模块这样的一个结构
首先创建一个下图红框的项目
这里用的名字是cheater
鼠标右击蓝色的红框位置选择新建项目
新建下图红框位置的项目
创建完的结构
htdSdk没有给Debug模式下的代码,所以要在Release模式下运行程序,然后设置一下项目依赖,cheater是注入器,注入器是依赖于dll的,如果没有dll注入器就没有什么用
设置依赖项
然后再把cheater设置成启动项目,因为dll是无法启动的只能通过注入器来启动
然后双击注入器的ui界面的 启动外挂 按钮,它会生成一段代码
双击完 启动外挂 按钮生成的代码如下图
代码写完之后编译完,只需要把下图红框的两个文件给使用者,其它的文件是代码的符号文件,有了符号文件会看到代码的注释和源码,如果给到使用者会被很轻松的破解我们的代码
通过窗口注入的方式:
首先打开游戏,打开游戏之后选择 Visual Studio 中的Spy++ 可以看窗口信息,
然后通过窗口搜索,点击下图中靠下的红框里的图标鼠标不要放开点击之后拖到游戏窗口就可以得到游戏窗户的信息了,可以看图1的效果
图1:把 Sword2 Window 复制到窗口注入函数的第一个参数中,然后把 Sword2 Class 复制到窗口注入函数的第二个参数中
代码:
注入之后按HOME键可以看到下图中叫 Dialog 的窗口了
入口点注入方式:
首先把下图红框的代码给注释掉
然后 启动外挂 按钮里的实现,要把之前窗口注入时打开的游戏关闭掉,这个游戏不支持多开
效果图:按HOME键弹出Dialog弹框
按HOME键可以正常弹出窗口那就说明项目搭建成功。
代码:
void ChtdExeDlg::OnBnClickedOk()
{
/**
InjectByWndHook函数是窗口注入:
Sword2 Window是从Spy++里得到,这是窗口的名字(标题)
Sword2 Class是从Spy++里得到,这时窗口的类
dlls.dll是dlls项目中编译出来的dll文件
*/
//htd::INJECT::InjectByWndHook(L"Sword2 Window", L"Sword2 Class",L"dlls.dll");
/**
* InjectByEntry函数是入口点注入
* 第一个参数是游戏可执行文件的目录
* 第二个是游戏目录
* 第三个是启动游戏的命令行参数
* 第四个是外挂模块的目录
*/
htd::INJECT::InjectByEntry(L"C:\\Users\\am\\Desktop\\易道云\\游戏保护\\练手游戏\\初级\\JX2\\Sword2-1920-window2_ui.exe",
L"C:\\Users\\am\\Desktop\\易道云\\游戏保护\\练手游戏\\初级\\JX2\\",
L"",
L"F:\\代码存放地\\c\\Sword2_Cheat2\\Release\\dlls.dll");
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
/*htd::INJECT::InjectByEntry(L"F:\\Games\\JX2\\Sword2WindowsA7.exe",
L"F:\\Games\\JX2\\",
L"",
L"F:\\Program Design\\课程代码\\htd\\Release\\htdMfcDll.dll");
*/
//htd::INJECT::InjectByWndHook(L"Sword2 Window",L"Sword2 Class",L"F:\\Program Design\\课程代码\\htd\\Release\\htdMfcDll.dll");
}