游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7906|回复: 22

老子看不惯外挂系列 之 彻底粉碎钩子型外挂

[复制链接]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-9-4 21:55:00 | 显示全部楼层 |阅读模式
现在大部分的主流外挂,包括按键精灵,自动做一些动作之类的外挂。
都是通过HOOK进游戏窗口,并且用不同的HOOK类型来完成的,比如对于
网络,通常是通过HOOK消息,把DLL弄到我们的游戏程序中,然后通过
GetProcAddress得到DLL中它们卑劣的函数的地址和真实的函数地址,
然后通过WriteProcessMemory来把我们的函数地址改成他们他们的API
地址。

那么在我们的游戏执行的时候,收到消息就会先触发他们的钩子,等
他们布置好邪恶的陷阱,然后再执行我们的程序。那么,对于这类型
的外挂,该怎么防呢?俗话说得好,以彼之道,还制彼身。所谓魔高
一尺,道高一丈。所谓邪不胜正。所谓天网恢恢。所谓做贼心虚。

恩,WINDOWS的钩子有个特点,就是钩子链,因为对于同一个进程,即
使是同一类型的钩子,能同时有多个,也就是说,对于同一个游戏,开
两个功能相同的外挂也可以。那么,怎么样来决定钩子的顺序呢?所谓
后来者先得,WINDOWS的做法是,最后一个HOOK某个进程的钩子最先执
行。并且振奋人心的消息是,在钩子里面可以控制下一个钩子是否执行。

这个函数是CallNextHookEx,也就是说,如果在某个钩子里面不执行这
个函数的话,钩子链就会在这中断,那么我们的思路就很简单了,在游
戏运行中,开一个进程,每隔一段时间就hook我们的主程序,然后在钩
子里面,不执行CallNextHookEx,这样就可以避免别人的钩子执行。

所谓,仅仅发现敌人还不够,还要消灭敌人。不急,我们来看看如何彻
底把敌人打成粉碎性骨折。恩,要消灭敌人就要复杂一点了,要针对不
同类型的钩子来采取不同类型的方法了,因为敌人的钩子不管怎么做,
无非是出于两种目的,一种是修改数据,另外就是过滤数据。其核心思
想就是我们自己的游戏注册两个钩子,一个总是在钩子链的最底层,另
外一个总是在钩子链的最上层,一比较两个钩子收到的消息,就知道中
间有没有别的钩子了。一但发现有别的钩子,不用想了,肯定是外挂,
最少也用了按键精灵,封号,杀档,想怎么干就怎么干。

当然,敌人也不是这么脆弱的,据说有人用raw socket来截获所有的网
络消息,这个跟钩子无关,这个更底层一些。不过不用怕,俗话说得好,
以彼之道,还制彼身。所谓魔高一尺,道高一丈。所谓邪不胜正。所谓
天网恢恢。所谓做贼心虚。对付拦截raw socket的外挂,将在下一集中
播出,请关注。。

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-9-4 23:18:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

用户使用外挂是否合法不知道。

不过,制作外挂可是违法的哦~所以只要这东西涉及到各游戏公司的利益,相信会被遏制住的……

18

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
QQ
发表于 2004-9-5 09:30:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

坐牢…………………………

0

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2004-9-6 09:48:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

通过不调用CallNextHookEx()禁止前一个钩子函数执行这种方法根本无效……

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-9-6 10:48:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

楼上的错了,是有效的。

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-6 13:42:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

。。。评书?

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-6 13:56:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

支持

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-9-7 15:11:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. A hook procedure can call
this function EITHER BEFORE OR AFTER  processing the hook information.

Calling CallNextHookEx is OPTIONAL !!!l, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call CallNextHookEx unless you absolutely need to prevent the notification from being seen by other applications.

仔细看大写部分,你这个办法根本行不通

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-7 15:41:00 | 显示全部楼层

Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

不就是改了成个E8+地址嘛。。。。

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2004-9-7 15:43:00 | 显示全部楼层

Re: Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

dkxw: Re:老子看不惯外挂系列 之 彻底粉碎钩子型外挂

改了成个E8+地址嘛。。。。:)

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 06:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表