xiaopihai1 2008-11-15 21:43
CS作弊器的基本原理
[url=http://www.sxeba.cn/][size=5][color=blue]CS作弊器[/color][/size][/url]的基本原理概览
从[url=http://www.sxeba.cn/][size=5]cs1.5[/size][/url]一直到现在的[url=http://www.sxeba.cn/][size=5][color=blue]cs1.6[/color][/size][/url],认识了几个很不错爱好[url=http://www.sxeba.cn/][size=4][color=red]cs[/color][/size][/url]的朋友,同时也对这方面有了一定的了解。不是[size=4][color=sandybrown]cs高手[/color][/size],但我愿意将自己知道的全部说出来与大家一起讨论。
好了,言归正传,今天我想跟大家讨论一下[url=http://www.sxeba.cn/][size=5][color=red]CS作弊器[/color][/size][/url]实现的[size=4][color=sandybrown]基本原理[/color][/size]。大家如果有什么问题或见解,请大家热情回帖,非常期待。
打开[size=4][color=magenta]cs作弊器目录[/color][/size]一般会看到3个文件:[size=4][color=red]myhack.exe,myhack.dll,myhack.cfg[/color][/size]。第三个文件.cfg是用来保存配置信息的比较简单,下面仅讨论前两个文件,因为这两个文件是缺一不可的(.cfg文件等可以没有)。
对于普通的[size=4][color=red]CS作弊器[/color][/size](比如OGC类,CDD类等),
其注入器(EXE)[url=http://www.sxeba.cn/][size=5][color=sandybrown]cs外挂[/color][/size][/url]的作用是这样的:
1、负责启动或监视[url=http://www.sxeba.cn/][size=4][color=cyan]CS[/color][/size][/url]游戏进程
2、创建或检测到游戏进程后,将[url=http://www.sxeba.cn/][size=5][color=seagreen]cs作弊器[/color][/size][/url]的主文件(DLL)注入到[size=4][color=teal]CS游戏进程[/color][/size]中(注入的意思是让运行中的CS游戏进程主动加载我们的[size=4][color=magenta]作弊器主文件[/color][/size](DLL),就象这个文件本身就是CS游戏的一部分一样)
其主文件(DLL)的作用是这样的:
我们 知道,一款CS作弊器从功能方面来说大致可以分成2块:一部分负责显示方面的,比如[size=4][color=red]透视、防闪[/color][/size]、显示人物名字武器等信息;另一部分则是控制[size=4][color=red]本地玩家[/color][/size]的动作,比如[size=3][color=red]自动瞄准、开火、加速、冲刺[/color][/size]等。而这些功能则全部是由CS作弊器的主文件(DLL)实现的。
1、透视、防闪功能的实现:一般来说,我们都是以OpenGL模式运行[url=http://www.sxeba.cn/][size=6][color=red]CS[/color][/size][/url]的。这种情况下CS游戏画面的显示就全部是调用[size=3][color=red]OpenGL函数[/color][/size]实现的,于是我们可以通过挂接(就是拦截的意思)CS调用的OpenGL函数中特定的一些函数并修改它,比如取消CS游戏场景中物体之间的深度测试或改变物体的透明度从而实现透视等等。
2、[size=2][color=yellowgreen]机器人[/color][/size]功能的实现:以瞄准机器人举例。同现实世界一样,CS游戏中的每一个人物都具有一组结构相同但数值各不相同的数据,我们抽取其中主要的来说,大致有这几类数据:
1、首先则是人物的姓名、状态、帮派、外貌等,用以表示这个人物看起来什么样、哪一个队等
2、人物的坐标值O(X,Y,Z),用以表示此人物在游戏场景中当前的位置
3、人物眼睛瞄向的方位向量V(X,Y,Z),这个向量决定你开枪时子弹会朝哪飞,你按前进键 ,
时人物会往哪个方向走
要做一个瞄准机器人思路就清晰了:得到本地玩家的坐标 O1,其他任一玩家的坐标O2,然后修改本地玩家的方位向量V1=O2-O1(当然,这是个简单的说明,实际中要稍微精确一点
知道了思路然后就是实际写代码做了:我们调用CS游戏中[size=4][color=red]获取人物数据[/color][/size]的函数得到人物的坐标,计算出V1,然后再调用CS游戏中修改人物方位向量的函数修改本地玩家的方位向量。当然了,前提是我们需要调用这两个函数,而我们作弊器主文件(DLL)则理所当然的挂接了这两个函数。
小结:总的来说,我们[size=4][color=mediumturquoise]作弊器主文件[/color][/size](DLL)就象一个高智商的间谍,打入敌方核心阵地(CS游戏进程),劫持敌方各部门收集数据(挂接调用CS游戏的函数),最后整理收集到的数据(计算)。够简单吧,对了,还有一个比较通用的说法,我们把除OpenGL以外的CS函数概略的称为[size=3][color=blue]CS游戏引擎[/color][/size]函数。
总结:注入器(EXE)------------- 我方间谍的支持团体,负责将其打入敌方内部。
作弊器主文件(DLL)------ 我方间谍,负责在敌方内部活动,完成实质性的工作。
好了,就到这里了。最后再说一句:请大家将您的问题、见解或对[size=6][color=red]CS作弊器编写[/color][/size]方方面面的问题通过帖子的方式发布出来
chenglu020 2008-11-16 04:32
兄弟,作弊是可耻的
xiaosheng 2008-11-16 07:44
tsj_03 作弊无耻tsj_19
lianji200 2008-11-17 00:28
鼠标玩家估计一年要换几十个鼠标
CS骑士 2008-11-22 13:52
技术贴支持.
作弊有害身心健康= =.
SXE2个月没有更新了.