1234WG(广海社区) - 多人游戏的Hacker秘籍分享论坛!

 找回密码
 立即注册
搜索
查看: 46060|回复: 145

[讨论交流] 正确分类游戏检测与浅谈如何过游戏检测

[复制链接]

1

主题

39

帖子

84

积分

农夫

Rank: 1

UID
429139
交易币
0 元
威望
0 点
贡献
57 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
6 小时
发表于 2019-6-7 20:48:54 | 显示全部楼层 |阅读模式

农夫 |主题 1|帖子 39|积分 84

暂时开放免费注册(无需邀请码),论坛将在2020年开启邀请码注册制!

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

x
下面是个人的一些看法,不喜勿喷,转载请备注8 r. l- v: k! v2 N1 S

! v. a( j, ^4 a. p! C直奔主题,下面的游戏内存检测的大体分类! i  M) s& n4 I/ t6 W' ^4 l/ J
1.数据校验2 r# @& P4 Y; E
2.CRC校验2 r7 I6 k, q5 P" X) v
--------------------------------------------------------------------3 w) B- V8 h- v
关于数据校验,顾名思义也就是校验数据: G% O3 U6 X' b: l8 P* ]  v3 O# v
数据校验到底是校验什么呢?
# J  F* j: b8 f2 `: o; c9 I7 P/ v3 K①如鼠标的XY 和人物的XYZ等: C7 P. y, ~6 J! q4 J& T
数据校验其实主要就是校验鼠标的XY  因为如果我们要写内存辅助,那么鼠标的XY是必须的,因为要写内存自瞄
5 P: @- \6 h$ g) E+ K校验人物的XYZ就是针对某些功能 比如瞬移
8 p5 H/ k) Y  e②人物手持枪械的数据,比如后坐力和射速$ ]# F) m3 h9 W0 f9 a4 L% L
后坐力和射速,基本的数据在本地。我们要实现完美无后和超级射速,也必须要过掉这些校验我们数据的检测# a. M1 q" A" m% v( x& q; w' D
还有很多就不一一列举了。
" }% @- b' F- k" s: h+ s; p- x& c- b

9 G- T* h" V- @; N怎么区分数据校验呢?  \7 r: _0 Y: m" g) O9 [. ~* z
①看数据类型 一般来说:四字节和浮点型等 通过直接改数据就可以实现的功能
9 y8 g8 M! f  r$ M
( ~  E: r1 C# I* v9 E# I
比如鼠标的XY  假如当前鼠标X=20.0  我们把他改动为30.0 游戏里直接可以看到鼠标移动,那么这样的一般只是数据校验在工作; \. x4 K6 s5 i1 a
+ L4 m! c6 s+ Q8 T3 Z1 n
②看相关地址的汇编代码 & d% w, a' n6 \& s- F8 q

) r# g; K6 s8 b5 }5 u比如你跳转到那个内存地址,看到的是一大堆乱码,而且是跟随你改变数值而变动的,那么一般是数据校验1 Z; z1 u4 @) P% P: g4 g/ t  f5 m
因为CRC没理由去对这一部分相当于乱码的汇编代码去进行校验8 V3 j: A3 A7 H) O# c) ^0 C7 K- r
还有很多方法,主要是依据经验去判断7 T/ }# R& X0 D$ M* z+ s4 p

4 P& {( F) y" @9 Z7 Q# m3 W
6 j1 u% b2 t1 P: C2 P
数据校验一般在TP中存在于哪些模块?2 v9 |9 h9 R% Z  i7 P7 B8 b
根据笔者这几年来的经验来说 数据校验一般是存在于GameRpcs这个模块,当然这个说法不绝对,需要跟进去具体分析
6 a5 E2 {) c: E( }5 }* G有些数据校验也存在于游戏的主模块里 比如QQ的主模块就是QQ.exe也就是它的进程名
! g4 u% M& a7 L& S3 T

5 d0 ]& z0 W1 s; K& k8 G3 W; q
, g8 g4 n6 j0 R
$ z) L, A/ x% K- I; F& h( L) h
数据校验的原理是什么?. S# g/ e( N8 B! P0 k5 k4 P# U8 D
  H" l. y+ L. U9 \6 t1 W6 M0 l5 U: T
关于数据校验的原理,学过编程的人应该都知道数据算法这玩意2 e6 M5 a$ k4 p+ J+ a
所谓的数据校验2 b. b: K+ s  O& J% c
就是把你的当前的游戏数据与服务器的数据进行比对,这是一种$ c( B# M1 V, [7 A
把你的数据校验 通过一个算法计算 看看是否正确,这也是一种7 K% Z; m: l1 {5 u6 [, v% m
如果不正确,相信结果大家也都知道,无非就是数据异常,封号
5 n9 e/ w. S: v$ [7 Y) D举一个小小的例子:
8 k6 u+ F. I; q% t; d如游戏里 人物的血值(HP)为10的倍数 ,比如110.100等/ `& h3 i$ p7 @" A: Z' [
如果我们这时候通过内存修改器(CE)去修改,比如改为999等& i! d8 p5 H; p6 A  g, G
显然999是不能被5整除的  我在代码段里去写一个子程序 判断HP是否可以被5整除,如果可以就返回1,不可以就返回0$ h2 V% O2 v# Y, w; D8 s' T
服务器接收到我的数据为1就是正常游戏,服务器接收到我的数据为0 就是异常游戏/ r9 m6 N6 R/ E$ \! Q5 q
这样就是数据校验的原理了$ v0 L& I* U( m" [4 G8 ]
关于数据校验的分析就到这里 相信大家也都明白了
, E1 x+ l; l1 {: |* @
+ M/ P4 b  |4 I3 M# V* j# ?8 x/ h7 ^

9 ^4 O$ |) R" H' i+ Z% u" j什么是CRC?如何区分CRC
8 h. z! }6 {9 w3 |) K4 |这里有一篇文章:https://baike.baidu.com/item/CRC/1453359?fr=aladdin
8 `3 M# H4 F$ }# f# S游戏里的CRC,无非就是对游戏内存的汇编代码段进行校验 如add,mov等代码
7 Y( O; V1 y. |8 o9 w, Z3 \给大家举个例子:
7 `# U1 P5 ]% s- W2 Q: ?首先,通过CE查找对象的血量 然后对对象的血量进行内存访问,发现我们攻击对象,对象的血量就会减少,访问框里会有一个mov进行赋值. j7 \/ a% R3 ]& {" Z8 C" M1 B: i
我们跳转到该地址,例如mov eax,0x100,我们改为mov eax,0  这样我们就达到一枪秒杀的效果
' `9 C2 x7 H' G( p  [: W, u. u但是游戏开发者们不会那么傻; Q: G# Y2 e) \3 T0 N* K4 k5 {' P
他们会通过CRC对这一大段汇编代码进行校验 如果发现和初始的代码不一样 也就是被改动了 游戏会立刻弹出异常; g4 t6 J; X" Y3 |$ Q2 f
上面就是CRC的相关介绍3 I" N) c% l1 P: `' @$ m
% {8 g+ ^& G$ P! ^! c" I$ Z! `$ j

8 I% v3 s* G1 {

4 i* v+ d2 P& a& c. d1 P; [2 U) `如何找出CRC?
2 ]5 \- n: H* s% ?5 R- M" p! j举个例子,比如 0x400000的代码为 mov eax,[esi]  我们要实现一枪秒杀 要把代码改为 mov eax,0  这明显与原来的代码不同* T$ A1 b  X& K9 t  E5 `+ G9 o
这时候 我们把0x400000这个地址添加到ce的地址表里   然后右键查找是什么访问了该地址
# V, y( D+ S& E/ {" LCRC只会访问 不会去改写
& b9 \7 s& u( s大约等几秒(CRC是有一个周期的,这个看游戏开发者设置)/ N  i6 A- X/ }9 B" t' {
访问框里会出现相关代码,我们跟上去把他干掉就可以了(方法以后会介绍)* V2 p5 F. k: b2 }1 m
2 b6 j; g  Q9 t) ~

/ p9 l9 O# [( q% ?8 @CRC一般在哪个模块里?1 M- N, ?/ _% C! L8 N
1 ?+ _' p7 ^% V% Z2 X8 ]
主要在TenRpcs 这个模块,当然说法依旧不绝对: N' s" l  r4 f. F) B' P5 H
不同游戏有不同游戏的检测方式,这些都需要去积累 我们才能准确的判断: F$ R* V, H4 ^, ]

' {# X- ?' g* R9 B6 w" w. g% x" o( p0 @8 W0 F0 j
- t. x  b& m/ ?# `, G
关于CRC和数据校验  前者是校验游戏的汇编代码 后者是校验游戏的数据! ]9 n5 y# ^2 d
如一枪秒杀等 一般属于CRC校验   内存自瞄的一般属于数据校验  这说法不绝对,如CX,DXF等游戏的检测十分变态
7 \' O3 r  k. f1 w  N; E/ k过游戏检测的时候就是和游戏开发者斗智斗勇的时候,这种感觉非常刺激
) g" w3 {* V( J# I2 `8 K  v' R. L$ X7 R0 V/ N# [' i  M, P- U3 Z

9 {) e; ?2 w) l& s$ D: @关于如何过游戏检测的相关介绍7 D! \( ~+ Z, _7 l
1.直接hook游戏相关代码 让检测无法执行
/ M' h- A& u/ c' f2.在校验的时候 jmp到一个空白地址 对返回值或校验值进行赋值,或把校验jmp一个干净的代码段
' q( S9 r5 f& `7 T" Z7 Q: o3.线程过检测 直接斩断线程,让检测无法执行
% t, Z8 d; O8 G( d1 ~; }4.阻止游戏的相关DLL加载4 L- T9 W. k- ?9 H; E. M

2 G% `, j- k- x& \# J/ n9 n" @! S1 @* ]0 V

' B% z: H$ g$ H. e" u% y7 U  [) w" Q) m
' ^/ \  w+ m- ]  ?; r4 {
文章到这里就结束了,以上就是我对游戏检测的看法
8 A' N, V5 M/ a! C( i不喜勿喷,转载请备注出处谢谢!
2 J6 k7 Z- T9 d0 b/ ^6 j9 H) Q# o% U7 l* x
1 R7 d" a- l9 F% X8 V1 ?
不知道论坛是否给留QQ,想着和大家一起交流的
( J# B, W  p2 Z: l( M1 i6 b& V4 {由于不清楚论坛的规则,就不随意在文章里留联系方式了
- g# u# \  A9 U5 D1 m  A需要一起学习的小伙伴 麻烦在文章下留言哦! Q' M+ I7 Q4 p
古人云:教学相长         4 Z) ]# I0 `. O

; M1 N% ]. U) |: i5 u3 H; ?如果有对以上内容不理解的小伙伴,可以在QQ上咨询我(分文不收)
$ h! b4 l& W9 h" e* ~9 G' e



联系我时,请说是在 1234WG(广海社区) 上看到的,谢谢!

1

主题

49

帖子

104

积分

农夫

Rank: 1

UID
428927
交易币
0 元
威望
0 点
贡献
38 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
9 小时
发表于 2019-6-7 20:48:57 | 显示全部楼层

农夫 |主题 1|帖子 49|积分 104

试下看看...........
回复

使用道具 举报Ta

5

主题

57

帖子

144

积分

农夫

Rank: 1

UID
428213
交易币
0 元
威望
0 点
贡献
36 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
1 小时
发表于 2019-6-7 20:49:23 | 显示全部楼层

农夫 |主题 5|帖子 57|积分 144

路过 帮顶 嘿嘿
回复

使用道具 举报Ta

1

主题

50

帖子

106

积分

农夫

Rank: 1

UID
428463
交易币
0 元
威望
0 点
贡献
22 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
5 小时
发表于 2019-6-7 20:49:44 | 显示全部楼层

农夫 |主题 1|帖子 50|积分 106

沙发位出租,有意请联系电话:13838384381
回复

使用道具 举报Ta

2

主题

48

帖子

108

积分

农夫

Rank: 1

UID
428527
交易币
0 元
威望
0 点
贡献
16 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
4 小时
发表于 2019-6-7 20:49:55 | 显示全部楼层

农夫 |主题 2|帖子 48|积分 108

小白一个 顶一下
回复

使用道具 举报Ta

2

主题

52

帖子

116

积分

农夫

Rank: 1

UID
428295
交易币
0 元
威望
0 点
贡献
33 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
10 小时
发表于 2019-6-7 20:50:58 | 显示全部楼层

农夫 |主题 2|帖子 52|积分 116

我了个去,顶了
回复

使用道具 举报Ta

15

主题

79

帖子

248

积分

农夫

Rank: 1

UID
428407
交易币
0 元
威望
0 点
贡献
38 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
3 小时
发表于 2019-6-7 20:51:44 | 显示全部楼层

农夫 |主题 15|帖子 79|积分 248

看帖要回,回帖才健康,在踩踩,楼主辛苦了!
回复

使用道具 举报Ta

2

主题

35

帖子

30

积分

农夫

Rank: 1

UID
429174
交易币
2 元
威望
0 点
贡献
27 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
8 小时
发表于 2019-6-7 20:56:07 | 显示全部楼层

农夫 |主题 2|帖子 35|积分 30

撸过
回复

使用道具 举报Ta

2

主题

50

帖子

112

积分

农夫

Rank: 1

UID
428234
交易币
4 元
威望
0 点
贡献
26 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
1 小时
发表于 2019-6-7 20:56:23 | 显示全部楼层

农夫 |主题 2|帖子 50|积分 112

楼猪V5啊
回复

使用道具 举报Ta

3

主题

56

帖子

130

积分

农夫

Rank: 1

UID
429017
交易币
0 元
威望
0 点
贡献
31 点
宣传
0 人
买入金额
0 元
卖出金额
0 元
纠纷记录
0 单
在线时间
4 小时
发表于 2019-6-7 20:57:12 | 显示全部楼层

农夫 |主题 3|帖子 56|积分 130

占位编辑
回复

使用道具 举报Ta

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

本版积分规则

关闭

广海公告上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|1234WG

GMT+8, 2019-9-18 13:49 , Processed in 0.296400 second(s), 45 queries .

1234WG - https://www.1234wg.com © 2012-2019

本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除