首页
社区
课程
招聘
[原创]分享一下某游戏CSOL的游戏检测(一)
发表于: 2019-9-26 07:04 14274

[原创]分享一下某游戏CSOL的游戏检测(一)

2019-9-26 07:04
14274
咳咳.这游戏虽然不是很火,但是也是一款老游戏了吧!我也算是个老玩家了。还是想分享一下自己逆这个游戏的经历

前言


首先这款游戏的引擎是GoldSrc 也就是说CS1.6的那些功能 透视 方框 之类的可以移植到这上面(我以前是这么想的)

这里我讲的都是游戏的检测.所以默认NGS保护默认是过掉的(CRC)

0x1  游戏引擎Hook的检测

如果你要写 透视 自瞄 显示武器名等这种肯定要挂钩引擎(其实也有其他办法,这里讲Hook引擎的办法 也是最直接的办法)

如果直接替换函数指针

Engine::g_pClient->HUD_PostRunCmd	= HUD_PostRunCmd;
Engine::g_pClient->HUD_Redraw		= HUD_Redraw;
Engine::g_pClient->HUD_Key_Event	= HUD_Key_Event;
Engine::g_pClient->CL_CreateMove	= CL_CreateMove;
Engine::g_pClient->HUD_GetStudioModelInterface = g_WallHack.HUD_GetStudioModelInterface;

替换后 进入游戏后 游戏直接闪退!

首先我想的是游戏循环访问判断,那好直接在函数指针 下访问断点.果不其然会有地址访问这里了.




我这个人比较懒 喜欢IDA 直接F5直观一点 :游戏判断 引擎地址判断是不是在client范围内


额呵呵 那简单了 直接返回上层Nop掉 或Jmp都可以



进游戏测试下  OK不掉了 完美

第二种Hook的办法当然是直接Hook函数头  但是并不是每个函数头部都是五个字节而且每个函数还要计算Hook几个字节非常麻烦

 办法总会有的 可以把地址替换client代码段的空地址  jmp到自己函数这不就完美了 而且游戏检测也是在client代码段!  

虽然有一点画蛇添足的敢接 但总归可以用



前面这两种方法过掉的前提是 你必须把NGS的CRC检测过掉 你TM都改游戏的代码段了 不检测你检测谁


那么第三种方法就是要规避NGS检测不能修改游戏的代码段且能Hook到游戏引擎


嘻嘻 前面第一种方法埋下的伏笔来了到调用检测CALL那里 eax!=0 就会跳走 那么想办法让他不等于0就好了

只要想办法让余数不等于0即可

		//37486B0A - 69 0D FC7B9737 6D4EC641 - imul ecx, [37977BFC], 41C64E6D	//取37977BFC内存地址的值 + 0x41C64E6D 结果放在ECX
		//37486B14 - BE 64000000 - mov esi, 00000064
		//37486B19 - 81 C1 39300000 - add ecx, 00003039							//值+=0x3039
		//37486B1F - 8B C1 - mov eax, ecx
		//37486B21 - 89 0D FC7B9737 - mov[37977BFC], ecx						//值写到37977BFC
		//37486B27 - C1 E8 10 - shr eax, 10										//值右移16位
		//37486B2A - 25 FF7F0000 - and eax, 00007FFF							// & 0x7FFF
		//37486B2F - 99 - cdq
		//37486B30 - F7 FE - idiv esi											//eax / 0x64 
		//37486B32 - 8D 04 92 - lea eax, [edx + edx * 4]						//余数+余数*4
		//37486B35 - 85 C0 - test eax, eax
		//37486B37 - 75 10 - jne 37486B49

所以直接把 0x37977BFC 的值一直锁定在0xFFFFFFFF就可以啦 

第一次写这种文章 .有点不熟练 ,如果有你们的支持, 那就更好了.



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-1-31 20:31 被kanxue编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (28)
雪    币: 21449
活跃值: (62353)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
2
感谢分享!mark了
2019-9-26 08:03
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果你要写 透视 自瞄 显示武器名等这种肯定要挂钩引擎(其实也有其他办法,这里讲Hook引擎的办法 也是最直接的办法)  求告知什么其它方法
2019-9-26 08:21
0
雪    币: 914
活跃值: (2298)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
4
评论区带哥们又开始了
2019-9-26 09:02
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
一脸蒙蔽。为什么你们懂得东西那么多?从哪里学到的?
2019-9-26 10:09
0
雪    币: 735
活跃值: (384)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
6
万剑归宗 评论区带哥们又开始了
啥意思,讲解下?
2019-9-26 10:46
0
雪    币: 12848
活跃值: (9118)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
7
不一定要日engine client, vgui2里一堆可以下手的地方,随便找个控件替换虚表把paint / think飞走都能拿到执行时机
最后于 2019-9-26 16:35 被hzqst编辑 ,原因:
2019-9-26 15:03
0
雪    币: 781
活跃值: (1116)
能力值: ( LV5,RANK:78 )
在线值:
发帖
回帖
粉丝
8
hzqst 不一定要日engine client, vgui2里一堆可以下手的地方,随便找个控件替换虚表把paint / think飞走都能拿到执行时机
老司机带带我 我要学辅助啊  老司机带带我,我要跟同优秀啊。何时才能带带我,何时才能拉上我。阿里里阿里里 阿里 阿里 里
2019-9-26 17:19
0
雪    币: 63
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
顺便讲解下CRC啊,感觉别人发出来的CRC文章几乎都是hello world级的难度。我自己去实战就被hook+crc+CRC混合3打,各种jmp来jmp去的,一会这个内存段,下一次执行又是另一个内存段。感觉知识被掏空,塑料英语又没地方补充知识
2019-9-26 18:29
1
雪    币: 203
活跃值: (942)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
上古邪神 如果你要写 透视 自瞄 显示武器名等这种肯定要挂钩引擎(其实也有其他办法,这里讲Hook引擎的办法 也是最直接的办法) 求告知什么其它方法
就是不扯引擎了 透视就干OpenGL 自瞄就读内存矩阵 骨骼数据这种
2019-9-26 18:58
0
雪    币: 203
活跃值: (942)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
hzqst 不一定要日engine client, vgui2里一堆可以下手的地方,随便找个控件替换虚表把paint / think飞走都能拿到执行时机
o(∩_∩)o 大佬很眼熟 我在找GoldSrc资料的时候都留下过你的身影
2019-9-26 19:03
0
雪    币: 12848
活跃值: (9118)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
12
bambooqj 老司机带带我 我要学辅助啊 老司机带带我,我要跟同优秀啊。何时才能带带我,何时才能拉上我。阿里里阿里里 阿里 阿里 里
管你优秀不优秀,南山法院走一走,阿里里阿里里 阿里 阿里 里
最后于 2019-9-26 21:44 被hzqst编辑 ,原因:
2019-9-26 21:43
0
雪    币: 12848
活跃值: (9118)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
13
戒烟 o(∩_∩)o 大佬很眼熟 我在找GoldSrc资料的时候都留下过你的身影
毕竟以前撸过GoldSrc mod的
2019-9-26 21:49
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
怎么才能使用模拟按键的api不被屏蔽
2019-9-26 22:31
0
雪    币: 497
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享,努力取学习
2019-9-26 22:38
0
雪    币: 131
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不错,学习了
2019-10-7 10:20
0
雪    币: 861
活跃值: (1598)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
大佬能不能讲解一下,CSOL怎么过CE和调试器检测呢
2019-10-11 11:06
0
雪    币: 17
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
大佬 我最近也在玩csol 想搞下kz  应该也是挂钩引擎获得信息执行指令的,但是他自动同步是怎么做到的呢
2019-11-25 12:00
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼上你要做的是模拟按键吗?
2019-11-30 09:37
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
别小楼 大佬 我最近也在玩csol 想搞下kz 应该也是挂钩引擎获得信息执行指令的,但是他自动同步是怎么做到的呢
你要做的事情模拟按键吗
2019-11-30 09:38
0
雪    币: 17
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
鸭子咯咯哒 你要做的事情模拟按键吗
看了下 CS1.6的 是HOOK函数做到现在XX侠XX7那种内存KZ的 但是我是菜B 不会..
2019-11-30 22:47
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
别小楼 看了下 CS1.6的 是HOOK函数做到现在XX侠XX7那种内存KZ的 但是我是菜B 不会..
官服不可用这样弄吗?
2019-12-1 11:28
0
雪    币: 17
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
鸭子咯咯哒 官服不可用这样弄吗?
可以。
2019-12-1 15:55
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
别小楼 可以。
你能帮我看看这个文档吗这里面是基址搜法我不晓得咋弄
https://www.docin.com/p-1995161110.html
2019-12-1 21:05
0
雪    币: 203
活跃值: (942)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
25
鸭子咯咯哒 你能帮我看看这个文档吗这里面是基址搜法我不晓得咋弄 https://www.docin.com/p-1995161110.html
这是啥年代的了。。。。早就不行了
2019-12-2 19:24
0
游客
登录 | 注册 方可回帖
返回
//