三国策论坛

       找回密码
    登录  立即注册
搜索
查看: 686|回复: 3
打印 上一主题 下一主题

浅谈外挂类型及如何防范

[复制链接]
跳转到指定楼层
楼主
发表于 2006-06-30 00:27:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

由于目前三国策IV月月都在就使用外挂问题查封ID,也未能拿出有效措施反制外挂,特此,从原理上剖析外挂的制作思路,让诸位兄弟得以了解。

关于市面上的已知外挂功能列举如下:

1.增强各类装备属性加成:这一类外挂属于最低等级的外挂,有单机版修改经验的玩家即可自制,就是在使用16进制编辑器[如UltraEdit-32、HexCmp等等],记住游戏里某装备的关联数据,在客户端里直接搜索找到存储该数据的地址即可。利用这一方法在文件夹里修改Main.map文件,就可以将玉花变为幻龙甚至是麒麟的奔跑速度.具体方法不敢在这里赘述,只能请兄弟们多留意一下对方带的什么装备,应该是什么效果,即可发现问题。


2、增加可视范围 这一类外挂在技术上应该已经上了一个档次了[虽然仍然需要修改客户端],因为,这里能够知道的数据实在太少[最多我们能够知道侦察范围大体有这么几个数值:比如已知相对于埋伏技能将,主城可视范围5格,无侦察技能的武将可视范围3格,有侦察能力的武将可视范围5格,相对于无埋伏技能将,主城可视范围10格,..等等]如果直接在客户端查找这类数据,实在是太多了,显然非正确途径。

那么这一类外挂的实现方式是什么呢?那就是反编译客户端,从源程序汇编代码里找突破。目前流行的反编译软件有OllyDBG和SoftIce。从功能上讲后者比前者强大,后者可以在Windows内核级对程序进行调试,但是前者简单易用,适合非专业人员使用。当然,不管是哪个软件,要想使用起来,还需要知道一点结构化编程的常识,一般程序员在编程地都会很注重程序的结构清晰,易维护,但同时也造成了程序易破解!这几乎是个死结。

根据这些天边百度搜索相关知识链接,边读源程序得到的信息,了解到三国策中对于可视范围的判断是有固定模块的,根据一系列的判断,然后以参数传递的方式给决定可视的模块传递一个可视范围参数[用的是常量传递],了解到这一步,那增加可视范围也就不是什么难事了。只需要反编译出来的源程序里面搜索 PUSH 3 或 PUSH 5 等等,再上下翻翻,在你找到的附近有没有相关的 PUSH 。如果也有,比如你找到一串PUSH 3,PUSH 5,再看看程序流程都指向同一个CALL,而且显然是进行某项判断后决定走PUSH 3或PUSH 5或 PUSH 0A(即10)的流程,那就说明你找对了地方,可以记录位置,尝试修改某个数值,然后进游戏验证修改是否正确即可。

那么这一类的外挂应该如何防范呢:只能是多留意,一般玩家在能够看到敌方和不能够看到敌方的情况下所做的判断是不一样的。比如骑兵射或撞,比如部队的行军路线[尤其米仓比较明显,看不到米仓会被米仓挡住,看到米仓则会绕着走],如果已方部队在不该被发现的地方被敌方发现了,多半是有问题的。除非对方指令狂多,不发展,只侦察。特别要注意的是,这个外挂的功能是已方[所有部队和城池的可视范围均扩大到了极限,如果他改成0A,则我方部队在敌城敌兵10格以内必定会被发现,如果改0F则是15格,几乎等同于地图全亮]。


这类外挂几乎无解,因为可视范围的界定是由客户端决定的,而这一模块转移到Server端将会对Server端造成过大的负担,另外所谓的监控也是无意义的,服务端加监控只是场面上的话,可视范围多少根本与服务端无关,而客户端加监控模块,可以通过修改模块入口跳过监控。目前唯一可能的方式就是加密客户端,但那也只是相对安全,加密解密的技术一直是此消彼涨的关系。

[此贴子已经被作者于2006-6-30 10:26:37编辑过]
回复 引用

使用道具 举报

沙发
发表于 2006-06-30 08:16:00 | 只看该作者

用外挂的人太可怕了

回复 支持 反对 引用

使用道具 举报

板凳
发表于 2006-07-01 00:24:00 | 只看该作者
[em07][em07][em07]
回复 支持 反对 引用

使用道具 举报

地板
发表于 2006-07-01 09:54:00 | 只看该作者
厉害呀~
回复 支持 反对 引用

使用道具 举报

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

本版积分规则

分享按钮
快速回复 返回顶部 返回列表