12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 263|回复: 0

(某FPS网游)我以为我开挂的时候是个神仙,结果没想到我只是个平平无奇的筑基

[复制链接]

51

主题

51

帖子

112

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
112
发表于 2021-2-19 18:18:11 | 显示全部楼层 |阅读模式
关于这个游戏其实说来话长了
早在十年前 这个游戏曾红极一时 生化模式迅速占领了国内FPS游戏市场 乃至成为了一代人的回忆
可如今这个游戏却是遍地布满了氪金 各种星际仙侠魔法装备 乃至外挂横飞到连一整局游戏都没办法正常进行


我回到这个游戏的原因还要从创造者游戏模式说起
创造者的玩家们可灵活运用游戏内提供的各式创造者方块进行搭建、改造、设置剧情等操作,不但可以单人搭建地图,也支持多人联机共同创作。将被动担当游戏地图、玩法变化为主动创造相关元素,成为游戏的主人不再是梦想

简单来说 在这个游戏模式中 玩家不需要氪金 装备有所限制 因为有了创造者大逃杀模式 我才重新玩起这个游戏在这个系列游戏中 因游戏引擎的特殊设定或者说是BUG 玩家在跳跃过程中进行左右移动可以加速 这也就产生了之后的KZ玩法
再简单点 意思就是你可以跑的比别人快 这就有了我的第一个跳跳虎开源项目
https://github.com/DragonQuestHero/CSKZ-AutoBhopJump(跳跳虎1)

其时我写这个项目的时候 还未深入研究这个游戏的反外挂功能 这个以后会重新提到
游戏本身屏蔽了一些按键模拟,我也懒得去研究究竟是怎么做到的 直接上驱动
当键盘上一个按键被按下时,产生了一个Make code,引发一个键盘制止,当一个按键被松开时产生一个Break Code,引发键盘制止。键盘制止导致键盘制止服务例程被实行,最终导致i8042prt的I8042KeyBoardInterruptService被实行,此函数从端口读出按键的扫描码,放在一个KEYBOARD_INPUT_DATA中,将这个KEYBOARD_INPUT_DATA放在i8042prt的输入数据队列中,一个制止放入一个数据,DataIn后移动一格,InputCount加1,最后会调用内核API函数KeInsertQueueDpc,进行更多处置惩罚的延迟过程调用

关于内核中KeyboardClassServiceCallback回调的更多详情可以移步这里
博客地址(作者并不是我):https://wonderkun.cc/2019/04/02/Hook%20KeyboardClassServiceCallback%20%E5%AE%9E%E7%8E%B0%E5%86%85%E6%A0%B8%E6%80%81%E6%8C%89%E9%94%AE%E8%AE%B0%E5%BD%95%E5%92%8C%E6%A8%A1%E6%8B%9F/
在内核中我只是做了一个HOOK监听 之后驱动还需要完成一些不断按下键位的操作 这里我直接用了朋友的项目整合进跳跳虎中
项目地址:https://github.com/MeeSong/DirectInput
之后便是编译测试运行 效果还不错 自动模式下空中可进行四次加速 MCJ也可以做到一些不错的效果 最高的调教可以让地速大于350(人类正常行走速度为250)
随后又在环3写了一些其他代码 比如长跳和海皇跳等等
当我兴冲冲准备进入游戏秀操作的时候 我发现题目没有那么简单
一是这个游戏会屏蔽速度过快的按下某键操作 意思就是如果你利用类似鼠标宏键盘宏疯狂发送消息的话 人物会粘在地上不站起来 所以每次发送按键消息必须要有间隔
那么题目来了 这个垃圾游戏优化一坨屎 一旦房间内人多的时候 FPS就会下降 FPS一下降 连跳脚本就不怎么正常工作了
这个题目对于按键模拟来说几乎是无解的 而且后来也不怎么玩这个游戏了 就直接丢到一边不管了
我之前发过一个帖子 是一个内核反反调试插件 不知道有没有留意过 我在未来要实现的功能中 将过HS游戏保护放在了首位 原因就是因为这个游戏
帖子地址
10年前 这个游戏最火的时候 也是游戏公司最有钱的时候 那时候的游戏保护好像什么都有 HS xigncode3  NGS乱七八糟的反正都有貌似
可惜如今游戏过气 再加上氪金玩法劝退玩家 现在连尼玛个驱动保护都没了
等于说我这反反调试插件白写了别?
行吧...
我发出这个反反调试帖子的时候 @戏言跟班丶 认出了我的github ID 而且找到了我
他告诉我了不少关于这个游戏的小道消息 然后又贴了不少资料给我 不过他还是没弄懂如何Hook引擎 于是乎 我打开游戏 点击更新 然后开始了研究
首先先说一下这个游戏现在的反外挂本领
不知道有多少人会把processhacker直接当任务管理器用 我就是其中之一 我开着processhacker玩游戏 直接给我封7天
这波操作有点骚啊?
我尼玛什么都还没干呢就先给我封7天?
于是乎我开始了第一轮实验
保护进程
我以前写过不少工具 小部门开源了 大部门留在了手里 进程保护就是其中之一
在内核利用ObRegisterCallbacks直接将句柄的访问权限关闭即可
项目地址:https://github.com/DragonQuestHero/QT-Process-Protect
关键代码:
[C++] 纯文本检察 复制代码        HANDLE pid = PsGetProcessId((PEPROCESS)OperationInformation->Object);if (_List->Search((ULONG)pid, 0)){OperationInformation->Parameters->CreateHandleInformation.DesiredAccess = 0;}
保护processhacker进程不被打开 然后进入游戏
成功了...还真就过了
RNM就这???
你这也要叫保护?
你还不如给撤了 这你都什么玩意卧槽?
随后实验了CE x32dbg调试都可以正常进行
说实话 你这东西弄了还不如不弄 我x32dbg什么插件都没开 就赤裸裸的调试
好吧 那第一轮保护过了以后开始第二轮
根据 @戏言跟班丶 的小道消息 我先去UC找了一波CS1.6的代码
地址1:[color=var(--color-text-link)]https://www.unknowncheats.me/forum/counterstrike-1-5-1-6-and-mods/341723-hack-evol.html
地址2:[color=var(--color-text-link)]https://github.com/eVOL-UC/cs-1.6(趁便问一句 github eVOL-UC的这个家伙应该是国内的?要否则他头像怎么这么奇怪)
OK 打开CS1.6开始测试 各种连跳各种秀 该游戏使用了同款引擎 应该内部都是差不多的玩意
根据 @戏言跟班丶的小道消息 我又在UC逛了一圈 发现结构体和偏移略有变化 修改项目编译 准备注入
不过 @戏言跟班丶说在游戏中 还有另外一层保护 对游戏引擎的关键位置都进行了CRC验证
我一开始还寻思着要不要直接上驱动干他CRC 不过 @戏言跟班丶给了一个帖子
地址:https://bbs.pediy.com/thread-254726.htm
这个帖子指明白这个游戏的CRC毛病 而且这个毛病如今也没有任何变化 宛如一个智力缺陷
直接硬刚吧
创建线程,死循环锤他
[C++] 纯文本检察 复制代码void WorkThread(){        while (true)        {                ULONG temp_addr2 = (ULONG)GetModuleHandleA("hw.dll");                temp_addr2 += 0xA57444;                ULONG* temp_addr = (ULONG*)temp_addr2;                *temp_addr = 0xFFFFFFFF;                Sleep(1);        }}
进入游戏 注入DLL HOOK引擎 成功
卧槽 就这就搞定了?
上午找资料下午改代码 晚上就可以玩了
可以 是时候该我秀一波了 一张图我全程连跳 怕是房间里的每个人都会觉得我是个KZ的超等大佬
结果当天晚上我就遇见了炸房的...
简单来说 给主机IP发送大量UDP消息 导致主机掉线 大概是这么个原理 我并没有深入研究 因为我是个想玩游戏的玩家 并不是来搞粉碎的
有爱好的可以看看这个帖子地址:https://bingfeng.tw/thread-657408-1-1.html
当天太晚了 我也没在意 直接睡觉 结果第二天早上起来游戏就更新了 基址也有变动 之前我都是写死的 等于说昨晚找了半天的地址白干了
没办法 再来一波吧 趁便记载一下我是如何开启某些功能的
游戏中有一个道具叫做"生命探测器" 其作用是可以瞥见僵尸的位置
通过反复含糊查询 最终我找到了这个地址

该地址为生命探测器的标志位 下面的谁人地址也是标志位 如果玩家得到了生命探测器 该标志位会置1
直接修改为1 进游戏测试
发现并没有用果
啧...破游戏搞这么多花里胡哨的东西干什么,简单点不可么?
没办法 只能看看代码了
首先下断看看谁改写过地址 在获取道具后顺利拿到

setne byte ptr [client.dll+E39360]
这里的client.dll+E39360和我找到的标志位是同一个地址 记住这个地址
随后上IDA看一下流程

该分支首先调用了某个函数 随后验证返回值 但是没有对这个返回值进行任何的判断
接下来看第二个调用
说实话 我逆向水平菜的一B 直接F5吧

大概扫了一眼 说实话 没看懂...
垃圾游戏搞这么多花里胡哨的干什么玩意
在看看动态调试结果

留意看箭头所指的位置 刚好和该标志位是同一个地址
emmmmm
然后我又跟了一圈 第一个call只是将某个全局变量拿了出来 然后不断取值 最后走一个调用再取返回值
在该返回值和标志位同时验证成功的情况下 继承一些操作
emmmm
QNMD不弄了 直接调用试试看
[C++] 纯文本检察 复制代码 if (GetAsyncKeyState(VK_F3) & 1)                {                        ULONG temp_addr2 = (ULONG)GetModuleHandleA("client.dll");                        temp_addr2 += 0xDB22C4;                        temp_addr = (ULONG*)temp_addr2;                        if (*temp_addr == 2)                        {                                temp_addr2 = (ULONG)GetModuleHandleA("client.dll");                                temp_addr2 += 0xE39360;                                temp_addr = (ULONG*)temp_addr2;                                *temp_addr = 1;                                temp_addr2 = (ULONG)GetModuleHandleA("client.dll");                                temp_addr2 += 0x631110;                                _UNKNOW UNKNOW = (_UNKNOW)temp_addr2;                                UNKNOW();                        }                }
第一个判断是因为要判断阵营 也就是只有玩家在人类的阵营下才开启生命探测器
趁便一提 观察的时候也属于人类阵营 只不过玩家是死亡状态而已
进入游戏 调用 成功!

我还在死亡状态下就能直接透视到僵尸的位置了 玩逃杀极其好用 你们慢慢抢道具去吧 我先走一步
搞定之后 我再次信心满满的进入游戏 这次我有了僵尸透视 还有地速将近400的MCJ 你TM能瞥见我尾灯就算我输好么?
然后我真的输了...
艹 我被一个地速过千的神仙抓了 如果说我是在骑自行车的话  他的速度简直就是在开飞机
搞了半天我还只是个筑基的?
这我能忍?再次找资料找代码 结果我却发现 这个游戏的题目根本没有那么简单
在反外挂如此脆弱的前提下 游戏内里早已布满了飞天遁地和加速
最严重的是炸房
我玩了三天 被炸了三天...
而且那位修士是无差别轰炸 只要你开游戏房间 他就进去直接炸房 所有人都没办法进行游戏
而且炸房这个东西居然也不是一天两天了 而是早就有这个东西
你还真就有点上汽大众2019款帕萨特的味道了
没办法 我被逼无奈只能再次查找资料 据说游戏开始后可以拿到IP和端口 进行DDOS的话可以炸房

我寻思能不能找到玩家的IP 然后以暴制暴 直接给他干掉线 结果却看到了这样的一段对话

行吧...那我认输了...不玩了 再见!
即便是我写出了飞天遁地和加速乃至炸房这种变态功能 那有什么意义呢?我只是想单纯的装个B 让别人以为我是KZ大佬而已 我把房间炸了 那我玩什么?
当初写跳跳虎1的时候 我删除了环3的代码 也没有放出过二进制文件 就是怕被封号

本来这份代码至少也要比及我不玩这个游戏以后才真正放出来 但现在也没故意义了 直接上代码和二进制文件吧 我也不害怕封号了
之前debug的时候 一不小心让游戏跑了起来

然后我就被制裁了...
你有这闲工夫为什么不去治治那些大罗金仙?找我个筑基的出气很故意思么?
最后在补充一句
垃圾游戏 吃相难看 一个劲的让玩家氪金却丝毫不在意玩家的意见 也从来不在乎游戏环境如何 吃屎吧 告辞!
现在我又得浪费时间去重新搞一份CSGO内存加速连跳 CSGO的僵尸逃跑我不信还有炸服务器挂
(我以前很少逛论坛 貌似等级不敷不让上传附件 那就没办法了 各位本身编译去吧...内里的地址应该直到下一次更新前都可以用 之后各位本身手动更新)
跳跳虎2项目地址:https://github.com/DragonQuestHero/CSOL-AutoBhop





来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-5-19 21:24 , Processed in 0.101563 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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