爱内涵易语言论坛

 找回密码
 立即注册

在线
客服

支付故障请联系客服服务时间: 9:00-24:00

选择下列客服马上在线沟通:

快速
发帖

客服
热线


7*24小时客服服务热线

关注
微信

qrcode_for_gh_8ddb8bddffb1_258 关注微信二维码
顶部
查看: 1746|回复: 2

分析过掉CF的CRC检测辅助手段

[复制链接]
avatar

1767

主题

1853

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
9845
巨币
12887
积分
39630
online_admin 发表于 2020-6-18 22:31:30 | 显示全部楼层 |阅读模式
FPS 游戏发展至今,阻挡辅助开发者脚步的往往不是数据和功能开发,而是高难度的检测。现如今,游戏的各种检测的手段越来越多,也越来越五花八门。: I8 r, R% [* g) U8 G# ^! v$ ^
如:
' n& R$ O+ ^7 D1 X/ j3 O检测参数,
  k9 C2 ?) B/ {5 }检测堆栈,2 ?8 C' ~& G9 _# p+ q& `
检测注入等等。' C8 `: N  Y' @+ S/ z1 [; P
其中 CRC 是众多检测手段中最为常见的,同时在各大新手和老鸟之间也广为津津乐道。那么今天和爱内涵辅助学院的各学员大家一起慢慢揭开“神秘”的 CRC。先来了解一下什么是 CRC,百科给我们的解释是:
2 S& O' v! S8 _$ p8 TCRC 即循环冗余校验码(Cyclic Redundancy Check):
# L# h' ]% O5 C9 U4 [5 _是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,
+ B, \, `) i5 `- {5 i# J并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。那么在游戏领域,咱们还是依照一直以来的通俗易懂的讲下,CRC 其实就是个对比。
& n7 N7 K+ \) n& u3 d那么它既然是对比,那么就需要两个值,一个是被修改的地址/代码段的值,一个是用作对比的值。$ n5 R: X& f# H
当地址的值 != (不等于)对比的值,那么反作弊系统将通过发包等手段告诉服务器,进行踢下线,封号等操作。
4 j0 X# Q) s  e$ ~& S# t/ s) V7 F那么,CRC 一般在内存中都长什么样的呢?我再给各位爱内涵学员举个例子
9 o. o) L: M$ |! ?* }某内存代码段中,如果出现以下代码:
' W& N2 e9 I0 X* k$ i! p===================: {# \$ z7 ?, N' w4 [2 W7 L+ \
mov eax,xxx7 Q% C: D8 u3 }
CMP eax,1
, v3 D, g+ ^: C( T% ^  vjnz xxxxxxxx( {8 Y/ g. u3 W' v7 |1 m
===================" f" V. l( O6 W  |3 R1 b. ~7 l
假设,jnz 这局代码是执行换弹完毕的动作,那么咱们想要零秒换弹的功能,在服务器不做验证的情况下,咱们可以修改 cmp 或者 jnz 为 JMP,在换子弹的时候,强制执行换弹完毕的动作,那么如果改了这个地方,CRC 会如何查呢?大家动脑子想想/ S6 \( J6 B1 ~/ e1 Y
首先我们学过汇编吧都知道下面这些汇编指令对应的0 f7 Z6 ?: k# h+ n, K  P
比如:
* p& q# h2 N) b8 j' b) s: i! K, _0 OJNZ xxxxxxxx 二进制的机器码
' |4 t0 j" m+ o* P5 o- R是:
  K/ N1 u0 L2 D0F 85 xxxxxxxx% I9 F* D+ P0 N1 s2 t
那么,咱们再来看看,JMP 的模样是
& c* n# q0 y- S0 w" h9 Q) p5 t5 l3 FE9 xxxxxxxx) ^/ S' Q2 O; [. g# C- L; Y
假如,我将此处改成 CALL?他又会变成什么样?8 E% a! ~( a0 D& o  c
机器码就会变成如下:% }+ N" n: Q2 b: f9 k* b1 F
E8 xxxxxxxx$ p7 ]. q9 O+ p) L5 |
因为 call 指令对应 E8通过对比,相信大家知道哪里发生了变化。原代码, 为 0F 85 但是不管你如何修改,此处都会发生变化,CRC 扫描的即是这个变化的值。所以在游戏里内存区域某个地方,可能就会有这样一串类似下面的效验的代码:
, m) c1 H1 b" l7 F! p3 e) B: B============================1 O" z" T* A+ v0 q4 L9 _
mov eax,刚刚 JNZ 代码段的值  i2 x( O4 l; A: e+ a1 U
cmp eax,0f85/ Q. e5 t# M) _% F% v
jnz 是否上报异常
( f9 k7 J# V. y* d; t5 }8 d============================
6 _- L# x; B- n来检查是否被辅助篡改。那么问题来了,我们在此检测代码处,咱们是不是又可以给他修改,是否我们可以不让其执行上报的代码呢?回答是:肯定的同样,在其他地方,也可以查询此处是否被修改。
* b0 H5 D' `- D) y0 N那么这个时候咱们要伪造几层,处理多少个地方,取决于游戏查了几层,验证了多少地方。通过以上的例子,相信大家对 CRC 有了一个简单的了解,以后我们黑色衬衣啊会随着课程不断更新出版深入下去,而讲解到这方面的知识。8 P9 Y6 x" z* U! U, j
接下来咱们实际的去游戏中,更深层的揭露它的“面纱”。相信穿越火线(cf)大部分人都知道,一个发展了十多年的老游戏,检测技术已经相
- O- b3 [( g3 q# [3 T当成熟,有很多地方值得我们学习和借鉴。今天以该游戏的内存透视为例子(我找出来的基址是: 7B65CC)该地址在未修改的情况下,默认的值为 16777217 即十六进制的 1000001,那么,将 1000001 改为某些值的时候,即可实现透视效果,
5 b$ ~& B* |+ c7 I! T0 m: u( q那么我们可以在这里可以简单的猜测和了解一下它这透视的实现原理(当然这不是本文主要探讨的内容)——该地址可能与游戏中的某些模型有关,D3D 渲染引擎读取该地址的值,当人为的修改后,即改变了渲染的顺序或者加载不了某些模型实现透视效果。
! z2 z3 }# r; d; u效果图如下:% I1 e5 f2 U8 x
# p, W9 g3 z$ W/ ]1 l
3 J3 x9 z- @1 `9 V  v
" |! k' B4 ~$ a* U# h* v6 d- A, H
此时此刻,大家可以看见人物透视实现了,同时也改变了该地址的值,当然这游戏如此关键的位置,肯定是有 CRC 或者其他手段在循环检测,即循环访问该地址,
& X- N; a3 f! f咱们 CE 里可以右键查看访问该地址的代码,如下几图:
+ @( U; l; N1 N
# |1 X" x4 n# s, i$ z$ t0 Z" K' @7 Z9 Z3 A
经过观察发现,我们前两条代码基本可以忽略,因为检测代码不可能在短短几秒钟内访问上千次(所以可以排除掉)
- S6 Z% R* J* k2 f9 K! P6 e我们值得关注的是第三条访问代码,每隔 3 秒钟进行一次访问,是不是和印象中的检测很像呢?
" r/ B$ X7 z7 M: r1 i" B该代码究竟起了什么作用,是不是让多数人束手无策的"CRC"?,咱们一步步把它分析出来就清楚了OD 附加后,跳转至该访问代码处:4 b* f  z7 R* D% F
( R8 c4 G) G7 y7 c  P; b5 K( S4 g6 `

% W4 w& V  Z6 S  i发现如上,代码段位于 gamerpcs 模块,那么这个时候咱们就要先记一下该地址位于模块中的所处位置,防止游戏奔溃导致数据丢失计算出该地址为 GameRpcs.dll+33D5F。记录好后,在该位置下段,咱们观察一下 EAX 的值:
- ?1 l6 G2 x9 n2 E, \6 \
* H" f0 _, E* T1 O! e4 F7 B' f* n  v# |. ]" x1 F0 N* x4 S
9 h0 w/ A% ?+ A4 {1 D+ n

本帖子中包含更多资源

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

x
回复

使用道具 举报

avatar

0

主题

3

帖子

2

积分

程序员

Rank: 1

金币
0
巨币
5
积分
2
在线会员 发表于 2020-7-20 10:18:28 | 显示全部楼层
分析过掉CF的CRC检测辅助手段分析过掉CF的CRC检测辅助手段分析过掉CF的CRC检测辅助手段分析过掉CF的CRC检测辅助手段分析过掉CF的CRC检测辅助手段
回复

使用道具 举报

avatar

0

主题

10

帖子

6

积分

程序员

Rank: 1

金币
0
巨币
19
积分
6
在线会员 发表于 2022-6-28 12:54:44 | 显示全部楼层

百度360搜狗图片视频搜索上海胖老师或者百度胖老师吧

百度360搜狗图片视频搜索胖老师或者上海胖老师或者百度胖老师吧
- E, H. k% Y7 F6 E百度搜索百度胖老师吧上海轨道公安人民广场派出所倪敏军与指挥分中心   
  E1 f; F' W/ q0 F* `新华社代表中共中央中国政府感谢胖老师并且给了胖老师非常高的评价* V8 q6 B, z7 i# w! ]
百度360搜索百度胖老师吧新华社上海分社报道上海胖老师了
4 v# x4 X$ x" [2 o( i5 Y抖音快手搜索上海胖老师或者百度胖老师吧你是否愿意见义勇为挺身而出帮助上海宝钢集团下岗工人胖老师一个话语权呢. ]) f  Y0 H2 i% R) R
百度360搜狗图片视频搜索胖老师或者上海胖老师或者百度胖老师吧
8 ]2 n! H( @' \; Y2 M% i( h百度搜索百度胖老师吧三号线偶遇胖老师,头条百度百科搜索胖老师6 E& u3 G1 n$ ?. m" D( q5 m" ~( D) M
上海宝钢集团上钢一厂下岗职工胖老师为社 会奉献爱心为国防建设贡献了自己最美好的青春,全中国全社 会网络新媒体网站都在为胖老师无私奉献而感动不已尽自己网站所能帮助上海胖老师一个话语权的时候。 贵网站是否愿意见义勇为勇敢挺身而出支持帮助一位全国拥军模范为社 会奉献爱心先进标兵热心社 会公益事业的上海宝钢集团上钢一厂下岗工人胖老师一个话语权呢不要删除屏蔽' ^! P9 u( ~& y/ @) L! Q* G
百度搜索百度胖老师吧三号线偶遇胖老师,头条百度百科搜索胖老师
9 D( a! h% U# V* J. K( ?新华社上海分社,中新社上海分社,人民日报上海分社,解放军报,人民武警报,光明日报,中国日报,南方周末,人民政协报,工人日报 ,北京青年报,新民晚报,文汇报等全国新闻主流媒体蜂拥而来采访报道我上海下岗工人胖老师自学成才甘于清贫,热心奉献,热心支持国防建设的拥军模范
9 u- j: r( E+ E5 d3 E9 b3 `- Y百度搜索百度胖老师吧三号线偶遇胖老师,头条百度百科搜索胖老师
2 G$ G7 U- Q3 O* \; _百度360搜狗头条图片视频抖音快手微 博微 信知乎网搜索上海胖老师或者百度胖老师吧* i1 a+ C0 y# L) T

& `+ p3 [4 g5 m0 i5 t& D6 M* W& C; }

- l; }$ q2 K2 U$ ^! t3 E- X
. \3 K, O, D2 n3 ?/ u9 B6 E管理员同志你好我已经发邮件给你了请求保留邮件相互转告不要删除上海下岗工人胖老师救命帖子好人是否应该守望相助好人是否应该有好报+ E, @9 e! D5 X! l
  贵网站是否愿意见义勇为勇敢挺身而出支持帮助一位全国拥军模范为社 会奉献爱心热心社 会公益事业的上海宝钢集团上钢一厂下岗工人胖老师一个话语权呢不要删除屏蔽; |' y. \$ ?" w6 o* W% b2 g  J
百度胖老师吧敬爱的论坛管理员同志众人拾柴火焰高上海宝钢集团下岗职工胖老师的求救帖子请求手下留情不要删除请求你相互转告! o3 r) Q6 o9 F1 z/ L/ n: J0 C
管理员同志能否得到你的帮助不要删除屏蔽上海宝钢集团上钢一厂下岗工人胖老师救命帖子好人是否应该守望相助好人是否应该有好报谢谢期盼贵网站是否愿意支持帮助上海胖老师是一位全国拥军模范为社 会奉献爱心热心社 会公益事业的好心人志愿者3 }' J) t& S& {  j. i2 g- \
4 B" t( ?1 _% p, i7 l
( t& ~0 F+ O! [7 x# O3 A
百度胖老师吧上海市公安局轨道交通分局石宇玉老师求救
百度360搜狗图片视频搜索胖老师
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|小黑屋|爱内涵易语言论坛 ( 浙ICP备19016710号-3 )

GMT+8, 2022-7-6 09:49 , Processed in 0.047597 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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