协议型外挂制作教程三

本文是协议型外挂制作教程的第三部分,主要介绍了APIHOOK的使用,包括其在游戏外挂制作中的作用、为什么要使用APIHOOK,以及如何通过APIHOOK拦截和替换系统函数。作者提供了一个APIHOOK类的源代码示例,并展示了如何拦截特定函数,如WString2ID和游戏的WndProc函数。教程建议使用较旧的游戏版本进行研究,以避免复杂性和潜在问题。
摘要由CSDN通过智能技术生成

协议型外挂制作教程三

By rix

       上一节中我们说了外挂平台的搭建,我们做完了Hook.dllwg.exe,但如何让wg.exe调用Hook.dll中的函数,可以自己查看CB的教程或者到网上查查。在这里我是在wg.exeHook按钮事件中添加了下面的语句来实现:

if(gamethreadid)

{

if(EnableHook(gamethreadid)==false)

ShowMessage("error");

}

       你可以点击Hook按钮在游戏界面出来之后,然后在游戏界面中按F12键调出外挂的窗口。

       昨天的尾巴完事之后,开始今天的教程。今天我想说说APIHOOK。虽然APIHOOK在大话游戏的外挂制作中不是必须的,但为了按照一般的制作流程顺序,就先将这部分加入到里面去了。

       使用APIHOOK的原因也很简单,游戏肯定要调用某些系统函数,使用APIHOOK可以简单的查看一些关键的信息并进行修改(就这么简单的理由?是的,我们一向再用杀牛的刀宰鸡的。。。)。

       Jeffrey Richter用了大量的篇幅来讲如何插入DLL和挂接API,如果你不知道Jeffrey Richter是谁的话,总该知道《Windows核心编程》的作者吧,如果不知道,我倒,系统抛出例外,你是外星人吧。我们的程序运行在用户层上,JR提出了两种办法,一种是改写代码,我刚开始也试图用这种办法,后来发现这种办法确实存在的漏洞多多,和JR说的一样。最后还是采用操作模块的输入节了。

       在查看资料的过程中,我发现JR的代码在中文Windows 2000上并不能运行(难道是外国人用的系统和中国的不一样?),后来只好JR的思路,重新安排了一下函数,但大部分函数都一样的。为了方便,我没有在类中捕获LoadLibraryALoadLibraryWLoadLibraryExALoadLibraryExW,也是因为我们的外挂程序运行的时候游戏的窗口已经出来了,该加载的一般都加载了。

       下面是我的APIHOOK类的源代码,该源代码是根据J.R的思路重新整理他的源代码来的:

       /*HookAPI.h*/

#include "windows.h"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值