c++配合Cheat Engine实现cs16外挂
CS 1.6 hack
我们的选题是对过气游戏CS1.6 (Esai 3248版)进行外挂的编写,主要涉及到利用反汇编、注入dll等技术进行游戏的修改。
DLL注入
我知道,每个dll文件里都有一个dllMain的入口,可以在那里设置当dll被process/thread进行attath/deattach等操作时执行的操作。那么我们编写我们的外挂代码,然后将其注入进cstrike.exe中就可以实现许多作弊功能了。
至于具体的注入方式,我们采取了远程创建线程注入的方式。具体的过程和解释如下
先获取注入目标的进程句柄,可以通过进程名、pid等方式获得给注入目标开辟一块内存空间存储dll的路径,然后远程写入获得加载dll的函数LoadLibraryW的地址,由于所有win32进程都加在了kernel.dll,因此该函数在所有进程的内存位置都是一样的,这为我们提供了方便创建在注入目标里远程线程,执行LoadLibraryW,参数自然就是之前写入诸如目标内存空间的dll路径名私信小编:“01”获取听课权限与资料!至此,dll已经被成功注入,并执行了相关的操作。在这里我们执行的就是下面介绍的hook操作
Hook opengl 函数实现透视、反烟雾、闪光
我们知道,cs1.6有opengl模式,也就是通过调用glBegin等函数进行人物等模型的绘制。那么在执行相关操作之前执行我们想要的操作就可以实现相关的hack。比如说,如果识别出正在绘制烟雾弹,直接终止绘图操作就能够实现反烟雾。如果正在绘制人物的模型,那么关闭深度检测,或者将人物的深度拉到很近也就能实现透视的效果了。
因此目前的核心在于,如何在游戏调用相关的函数的时候,先行调用我们插入的函数,并不影响原函数的正常运行。
注意到下列事实会有助于理解
游戏里每次调用相关函数都会从entry处执行,因此我们需要在entry处jmp到我们预先执行的代码targetjmp函数会覆盖原有的指令,我们需要对其进行备份,并且留有接口能正确的执行原函数new_entry我们可以存下new_entry的地址,以备target里使用每个指令都有各自的长度,我们不能随意打断拆分。所以我们需要用IDA等工具查看entry处的汇编指令情况,找到len长度的字节,保证len大于等于5且不会打断指令关于len的示意图如下,hook这个函数是len需要设成7(或者更大,但不能打断指令)
同时为了方便理解,放上相关的示例代码
上述代码就可以实现在执行glVertex2f时,先跳转到我们的Hooked_glVertex2f函数执行,而pglVertex2f就是原函数的功能备份。当然如果判断完不需要绘制(比如烟雾)的话,直接return也就可以了。
通过对mp.dll的分析实现hack
在使用IDA和CE修改器等工具后,我们可以发现一个核心的dll——mp.dll。绝大多数的游戏相关的函数都存在里面,这也是我们攻击的重点。
定位数据
拿到游戏里人物、枪械的数据是我们实现hack非常重要的一步。这里我们使用CE修改器帮助我们完成相关的操作。这里以生命值(HP)为例来说明我们如何定位关键数据的内存地址。
我们首先在游戏中通过各种方式反复改变自己的HP,同时利用CE监控内存变化。如果内存中的某个数据总是和我们的HP保持一致,那么我们就可以认为这个地址很大概率上储存了玩家的生命值。但在实际操作中,HP的值往往在内存中存在多个副本,还需要逐个分析筛选,找到唯一的记录HP的内存地址。
但是即便我们这里得到了一个地址,这个地址也不会是一成不变的。在重每次新运行进程的时候,进程的地址都有可能变化,因此我们需要把获得的绝对地址转化为相对于进程的偏移地址。具体来说,我们一级一级寻找它的指针,直到这个地址位于游戏主进程cstrike.exe里面。一个基本的步骤如下
我们获得了HP存储的地址 0x0B221D5C。
我们监测修改该处值的代码,并使自己受伤,然后可以看到修改该地址的语句含有[eax+00000160]的字样。
因此我们可以大胆断定,eax此时存的是某个结构体的指针,而hp作为结构体的成员被存储在+160的位置。因此我们读取eax的值,然后直接在内存中搜索这个值,就可以找到存放这个指针的位置。
至此,我们就成功找到了hp上一级的地址。重复上述操作直到该地址不再是绝对的内存地址,而是cstrike.exe + offset的形式时,我们就找到了hp的正确访问方式,而不用担心进程加载以及malloc的时候开辟空间的不同造成的影响。
同样的,我们也对其他容易观测并修改的值进行了定位,并依靠其获得了许多有用的数据如下
其中像X,Y,Z坐标的信息是难以通过搜索内存定位的。但从已经确定的如玩家HP,护甲等信息,我们可以猜到[cstrike.exe+11069BC]+7c]存放着玩家的相关信息,而[[cstrike.exe+11069BC]+7c]+4]里面存放的就是和玩家物体直接相关的信息。那么我们通过对[[cstrike.exe+11069BC]+7c]+4]里所有的offset进行监控,也就能定位出这样一些难以直接定位的数据。
关键语句定位
在找到关键数据后,我们需要找到修改这些数据的函数语句。我们首先使用CE监视修改关键数据的语句,这里往往会得到很多条;然后需要逐条查看反汇编,进行筛选,最后找到最核心的语句。这样我们就拿到了语句相对于动态链接库起始位置的地址。由于动态链接库在内存中的加载地址并不固定,之后我们还需要借助Windows提供的一系列API来计算出这条语句在内存中加载的实际地址,才能进行后续的操作。
定位目标函数的一般流程如下:
使用CE监视内存,不断修改游戏中的某个状态,找到内存中控制这个状态的数据地址。
使用CE找到修改这条数据的语句的地址(实际上关心的是在dll中的偏移量)。
基于IDA Pro对dll的反汇编,根据上面得到的地址,找到对应的语句,阅读包含这条语句的函数的汇编代码,理解含义。
关键语句修改
修改分为两类,一种是简单地写入新语句,覆盖原来的内容。这部分相对比较简单,只需要把机器码直接写入内存指定即可。但是限制较多,一般只是写入0x90(nop),相当于移除了某条指令。
这个方法确实不错,也能达到很多效果比如不掉血不掉甲。但是由于这些函数都是全局共享的,也就是双方都不掉血掉甲,作为一个外挂来说肯定是失败的。
更为通用的办法还是仿照之前的写法进行hook,而在hook的代码里就可以检测调用者的信息,如果是自己就加入类似无敌、攻击翻倍等功能。
我们实现过的功能包括无限子弹,秒杀(用户造成的伤害锁定为255),无敌,随地买枪下包等。有兴趣的读者也可以自行尝试。建议先用CE修改器达到类似功能,然后再考虑如何写入dll文件中。
18年前的老外挂有多牛?只需要开网页,游戏都不用打开就能刷怪
大家好,这里是正惊游戏,我是正惊小弟。
前几年,有不少网游因为外挂横行,无法治理,导致玩家流失严重,到了后来甚至逼到关停游戏服务器的地步,所以近几年,很多公司对外挂的打击力度都非常大,当年的很多奇葩外挂大部分都已经被整治了,甚至外挂制作人都抓了不少。
不过十几年前就不一样了,在当时,《穿越火线》的猎狐者是可以飞的,DNF的BOSS是可以被秒的,《QQ堂》的角色是可以飞到屏幕外边的……
今天,小弟就来带大家看一下,以前的老网游里面,外挂到底可以有多牛逼!
《剑网1》:挂机刷怪连游戏都不用打开,角色还能够瞬移
20世纪初,网络游戏还没有如今那么发达,绝大多数的MMORPG网游都是枯燥的刷怪,升级,打装备,玩家们倒也乐此不疲,《剑网1》也是如此。
不过随着玩家们等级的逐渐升高,运营商们为了增加玩家留存与游戏寿命,开始慢慢提升角色等级上限,让玩家花费更多的时间打怪。
于是就出现了打一个怪只升0.0000000001级的诡异现象。虽说当时还没有996,躺尸网友也非常的多,可大家再闲也不想一天到晚盯着屏幕狂点鼠标,于是,辅助挂机外挂出现了。
当时官方和辅助外挂打的是热火朝天,小弟在此就不做赘述了,毕竟如今很多网游都有挂机功能,最后的胜利大家可想而知,今天小弟要介绍的是当时的一款无敌挂机外挂——《剑神》!
要说这“剑神”是真的神,只要在“剑神”页面输入《剑网1》的账号和密码,玩家连游戏都不用进,就可以直接开始刷怪,整个电脑界面只有一张类似于地图的辅助画面,玩家的角色是小黄点,怪物是小紫方块,只要设置好路线图,就可以开始刷怪,甚至为了速度更快,游戏里的角色还能够瞬移。
当年的电脑功能也没有如今那么强大,所以双开甚至多开账号根本无法做到,然而有了“剑神”就不一样了,玩家可以同时开6、7、8个帐号,电脑上所显示的,也不过是8张地图罢了,根本不吃电脑资源。
于是就出现了一个大哥带着5个小弟,开始疯狂瞬移刷怪的恐怖画面。
当然了,虽然后续游戏官方默许了挂机刷怪的外挂,但是由于“剑神”实在是太不要脸了,你连游戏都不打开,这深深伤害了运营商的心,所以这个外挂存活了两个月后就被彻底和谐了……
DOTA:只要我刷得够多够快,你就看不到我
DOTA老玩家都知道DOTA这种游戏的竞技性有多高,略微的操作失误都会导致正常游戏的崩盘,所以不少玩家在多年DOTA游戏的历练下,都练就了一副火眼,能够迅速看到地图上的细节,从而补兵躲技能。
然而有一位奇葩外挂发明者剑走偏锋,他不改你角色的数据,不开全图透视,而是把歪主意都放到了对话框上。
没错,就是和下图一样的恶心。
这是一种刷屏外挂,更像是一种在游戏外面开的辅助插件,能够让你不停地在对话框中输入大量的白色特殊符号,从而让其他玩家都看不到地图,自己却能够不受这些符号的影响正常操作。
要知道当年是没有禁言命令的……于是深受其害的玩家疯狂投诉,后来才有一些对战平台在war版本的DOTA里面加入了禁言命令,情况才有了好转。
所以,如今的禁言原来根本就不是针对骂人的?
DNF:40级的小身躯穿52级的装备,还能够秒带无敌护盾的BOSS
作为一款老牌游戏,DNF活到现在也是相当不容易了,毕竟如今的游戏可是3A横行,特效满天,DNF以前再火爆也终究是有一个寿命。
老牌游戏自然也经历过以前那些外挂横行的年代。
当年DNF有过真正的一刀999999外挂,还有加速技能,无CD等各种外挂,啊,当然了,这些外挂都消失在了历史的长河中,最令人的记忆深刻的,是当年大红神可以穿女装,40级的时候就可以穿上52级格斗家的装备。
最离谱的,是装备还带了装备效果,走在路上一颠一颠的比王校长还要潇洒。
有网友称,这种外挂虽然带来的实际效果少,但是难度非常大,因为更改的数据量非常庞大,所以很少有无聊的黑客编写这种外挂。
当然了,为了弥补52级装备伤害也不足的缺陷,黑客还给这个外挂添加了一个秒杀功能,连带着无敌护盾的BOSS都可以强力秒杀,直接清除……
CSOL:整个房间的第33人,玩家甚至根本看不到他的名字
十年前的CSOL可是射击游戏的主流,不少网友称后面的射击游戏都是从CS演变过来,所以可见当时的CS玩家数量有多么庞大。
当时的CS也是各种外挂横行,什么透视啊,自瞄啊,穿墙啊,飞天啊。
不过这些外挂和下面的一个相比,简直就是洒洒水了。
这个外挂,可以让32人的房间里面出现第33个人。
你看,灵异的气息是不是就出来了?
通过这个外挂,开挂者可以在32人满员的房间里硬挤进去,并且成为整个房间的第三阵营,两边的人都能够被杀。
当然了,被32个人追杀的感觉也不是太好,于是外挂开发者又给外挂添加了一个隐身功能,就是整个房间的人都看不到这个挂bi在哪。
当时还可以T人,可这个外挂实在太狠了,连自己的名字都直接给隐藏了,导致玩家们根本没有办法完成T除的动作。
不过小弟觉得,这种外挂就是纯粹来恶心人的,这样子打游戏也没什么意思了吧……
《奇迹MU》:你不喜欢我?我偏偏要和你强行组队
奇迹作为一个老牌网游,当年也是有着不少的玩家,毕竟谁不想和自己的好兄弟们组个队,一起疯狂的刷怪呢?
然而,就是这个组队功能,当年出现了问题。
当年有不少玩家,在组队的时候听见了一声提示音,显示有玩家进队伍,然而界面根本就不显示队友。
不少玩家以为遇到了BUG,也就没注意,然后就发现不对了,就是自己打怪的时候没经验了……
经验都被那个隐藏的队友给吃光了,关键你还不知道他是谁,连骂人都骂不到。
而且这个挂可以让开挂者同时蹭好几个队伍的经验,能够让角色在一天内就获得巨大的提升。
当时有不少玩家都是选择地点开启挂机模式刷怪的,结果一天下来经验一点没涨,全被挂壁给吃完了,气得不少玩家骂娘。
最恶心的是,这个外挂比当年的BUG还狠,还可以直接在囚禁和其他几个人组队,让不少单刷的玩家瑟瑟发抖,打又打不过,抢又没法抢,实在是恶心到了极致。
好了,看到最后,小弟也有话想说: 不少玩家都经历过外挂,可其实外挂并没有那么好玩,因为一旦游戏失去了难度,反而就没有挑战性了,对其他玩家也并不公平,所以小弟是坚决抵制外挂的,希望各位玩家也能够遵守游戏的公平性~
一个正惊问题: 你还遇到过哪些牛逼的外挂?
相关问答
CS1.6 外挂在那里 下载 ?[最佳回答]cs站队之家
cs 的 脚本 怎么用啊,写的详细点, 1.6 的?脚本运行网上都有说明建立一个文本文档然后输入脚本指令然后保存格式UTF-8之后改名网上写的改什么名字就改什么然后放哪我好像忘了...脚本运行网...
求 cs1.6 的小跳大跳快速买枪 脚本 ?答:小跳就是点一下CTRL大跳是空格加CTRL小跳也可以把蹲捆绑在滚轮上至于买枪一般在游戏控制-键盘设置里可以修改答:小跳就是点一下CTRL大跳是空格加CTRL...
cs1.6 控制台所有代码?adjust_crosshair每打一次准心就会换颜色,共有五种颜色ah1设定是否开始自动说明cl_allowupload1允许用户方上传自己的数据如logocl_allowdownl...
CS1.6 能网上对战的 下载 地址..[最佳回答]CS1.6Okgogogo增强普及版v3.0(3647)http://www.okgogogo.com/down/down_1290.html反恐精英CS1.63248中文版http://w...
CS1.6 作弊器怎么不能用啊?是哪个注入器文件顺坏了建议你下载过一个,至于说病毒,估计有木马也不会出现这种情况我上次用的也是出问题了后来下载了个神龙CS007万能注入器这个非常牛逼,自...
CS1. 5 脚本 怎么制作?首先问一下你找的脚本解压后都有什么文件1.单一个config.cfg文件,那么把它复制到CS目录下的cstrike文件夹中问是否要覆盖,选择是(最好将原文件备份,以便需...
CS1.6 作弊码。如果是作弊器就不用发了。带上它的用途?Gamegenie之类是属于改掉rom(不是RAM)的内容,最多可以修改三个地址,所以它实际上比一般的作弊码功能还少……然而Tetris仍然是有code的Gamegenie.....
cs1.6 怎么玩不了说什么作弊器?其实办法很简单,只要在“数据执行保护”中把出现问题的程序添加进去就可以了。方法如下:1、鼠标右键单击“我的电脑”。2、选择“属性”命令。3、选择“高...
谁能告诉我 CS脚本 怎么用?首先你得有脚本,然后打开CS的文件,里边有个叫cstrike的文件打开它,里边有个叫config.cfg的CFG文件双击,电脑会问你希望怎么做,选从列表中选择程序,确定后会...