【天天热闻】华林证券董秘回复:...
华林证券(002945)12月30日在投资者关系平台上...
在玩某些游戏,例如fps类游戏时,你想要修改某些特定的数值实现一些功能,这时你很有可能会被查封账号甚至禁封机器码。因为你更改了游戏中的数据,从而导致接收方收到”错误的数据“。为尽量提高接收方收到数据的正确率,在接收数据之前需要对数据进行差错检测,这种检测就是我们所说的CRC检测。
(相关资料图)
CRC也叫循环冗余校验码,它属于密码学一类算法,常用于数据校验,一般会用来检测程序是否被脱壳或者被修改,以达到防破解的目的。CRC运算实际上就是将数据k进行模2运算,得到余数n,然后将n拼接到k的后面生成k+n为循环冗余校验码的字长。接着发送k+n到接收方作为被除数进行模2运算,判断余数是否为0,如果余数非0则CRC检测出数据被修改了。简单点说,就是把需要校验的数据与生成多项式进行循环异或处理。
PS:1.发送方和接受方会约定一个特定的除数,它是一个定值,我们也叫除数为生成多项式。
2.在计算余数时,被除数也就是数据k需要进行补0,补0个数为生成多项式长度-1个0。
3.余数长度一定与补零的长度一致
流程图:讲了这么多不如来个例子好理解
例子1:这里数据为1110101,生成多项式为101,那么我们要传给接收方的数据就为1110101(数据)+10(余数)=111010110
这个就是CRC的计算原理了.
CRC计算的两种方式1.直接计算法这里我们通过例子来讲解,例子2:
首先我们看到这里的生成项是1101,然后在计算中的除数(蓝色字体标记)大多是1101而有时是0000,当除数为1101时被除数的首位都是1,而首位不为1时就是0000。那么我们不妨做个假设,既然被除数和除数的首位为1时会被消掉那么我们就不需要四位异或了,改成三位异或,三位异或的话被除数一次就取三个,而除数取后三个,当被除数首位为1时就左移一位让新的三位与除数(生成项)的后三位进行异或;当被除数移出位是0时就异或000,然后不断重复此步骤直至结束。(这里是针对本例题的,当你的生成项为n时,你就取n-1位异或)
那么就会有人问到底需要重复几次才算结束呢?
处理次数=待处理数据位数(被除数位数)=商的位数(本题次数为6次)
例如本题第一次被除数取100,左移一位得001然后与101异或得100。100左移一位得000然后与101异或得101。101左移一位得010然后与101异或得111。111左移一位得110然后与101异或得011。011左移一位得110然后与000异或得110(与000异或值是不变的)。110左移一位得100然后与101异或得001得到余数刚好6次。
2.驱动表法驱动表法没有直接计算法得直观,但是效率却比直接计算法要高那么如何实现呢?我们知道直接计算法是一步一步从上往下来异或得到得结果,在算得过程中会有异或许多生成项,而生成项又是不变的,那么是不是可以提前计算出与数据前几位符合的生成项之和然后再异或呢?
那么我们就将0000 0000 ~ 1111 1111这个范围的所有生成项计算出来存储为表格,计算的时候取数据的首字节进行索引找到表中对应生成项异或的和与去掉首字节的数据进行异或就行了。
表的形成终于过度到表了,这里我们来用算法实现表,让你清楚明白它的原理,这里我们拿CRC32表的形成举例首先得了解一下CRC32的生成项是什么
想要了解更多的CRC以及它的生成多项式可以去这里看:http://www.ip33.com/crc.html
#include
注意这里用红色标识的右移,这里如果按照直接计算法来说不应该是要左移吗,为什么又右移了呢?
注意看这个表的倒数第二个,CRC32,它的输入和输出都是需要进行反转的,也就是相当于逆向,我们就要将左移修改成右移
当然还会有人问它的多项式不应该是0x04C11DB7吗,怎么又变成了0xEDB88320了呢?
这是它是因为0xEDB88320是0x04C11DB7的反转。这个表的生成很简单,一般是用的是0xEDB88320这个反转多项式,假如用0x04C11DB7这个正常多项式则必须还要交换位,显然会很麻烦。
做一个CRC的检测程序相信大家差不多能够理解CRC实现的大概过程了,前面主要是对CRC大致了解,而我们真正需要深入了解的是CRC32。CRC32常用于游戏以及一些 ARJ、LHA等压缩工具软件,那么接下来我们来写一个CRC32的检测程序。
#include
这里初始化是因为待测数据的内容和长度是随机的,如果寄存器初始值为 0,那么待测字节是1字节的0x00,与待测字节是 N 字节的 0x00,计算出来的CRC32值都是0,那 CRC 值就没有意义了!所以寄存器用0xFFFFFFFF 进行初始化,就可以避免这个问题了。
我这里的文件大小对应的是主模块镜像大小。
实践是否能成功这里我们用CE进行数据的修改
这里我们先手动添加地址,然后再将数值进行更改,我这里是改成了11111,然后过了5秒就弹出了警告。可以看出这个检测程序成功了!
当然有些有点基础的人会问,CRC不是检测代码的吗,为什么这里你修改的是数值也可以检测呢?
因为CRC是在代码段中进行操作实现的,在内存中数据根代码没有实质性的区别。
关键词:
CRC介绍在玩某些游戏,例如fps类游戏时,你想要修改某些特定的数值实现一些功能,这时你很有可能会被查封账
FreeBuf.COM 2023-04-271、外出妻子秀真(林尚孝饰)遇上交通意外,舞台灯光师仁书(裴勇俊饰)离开工作岗位赶往医院。2、在手术室
互联网 2023-04-27兴趣引领,关爱相伴|新福景2023届中考体育再创辉煌!4月23日下午14:30,新福景双语学校303名初三学生到红岭
国际教育网 2023-04-27《灌篮高手》在经历首周末票房狂热之后,也没能挽救内地电影市场的冷清。近年来国产大片越来越喜欢扎堆黄金
哔哩哔哩 2023-04-27快手表示,在对医疗生态进行治理巡查中,发现一些医疗健康认证账号存在“账号认证资质造假”,并蓄意发布低
DoNews快讯 2023-04-271、(1)从与东南亚诸国相关位置看,新加坡地处物产富饶的东南亚中心,可称为“物产集散地,货物转运站”(
互联网 2023-04-274月25日,著名女演员戚薇在社交媒体上发布了一段视频,内容称自己收到了一位粉丝送的刮刮乐,并且中奖了。
美好生活源于创造 2023-04-27
CRC介绍在玩某些游戏,例如fps类游戏时,你想要修改某些特定的数值实现一些功能,这时你很有可能会被查封账
FreeBuf.COM 2023-04-27
1、外出妻子秀真(林尚孝饰)遇上交通意外,舞台灯光师仁书(裴勇俊饰)离开工作岗位赶往医院。2、在手术室
互联网 2023-04-27
兴趣引领,关爱相伴|新福景2023届中考体育再创辉煌!4月23日下午14:30,新福景双语学校303名初三学生到红岭
国际教育网 2023-04-27
《灌篮高手》在经历首周末票房狂热之后,也没能挽救内地电影市场的冷清。近年来国产大片越来越喜欢扎堆黄金
哔哩哔哩 2023-04-27
快手表示,在对医疗生态进行治理巡查中,发现一些医疗健康认证账号存在“账号认证资质造假”,并蓄意发布低
DoNews快讯 2023-04-27
1、(1)从与东南亚诸国相关位置看,新加坡地处物产富饶的东南亚中心,可称为“物产集散地,货物转运站”(
互联网 2023-04-27
4月25日,著名女演员戚薇在社交媒体上发布了一段视频,内容称自己收到了一位粉丝送的刮刮乐,并且中奖了。
美好生活源于创造 2023-04-27
华林证券(002945)12月30日在投资者关系平台上...
12月29日,以技术创新荣耀四川为主题的2022年...
➤2023元旦嵩山景区(16个景点)免票开放嵩山...
由人民网主办的第十九届人民匠心奖评选活动已...
武汉跨年夜哪里有倒计时?答:没有官方组织的...
连续两个月回升!6月份中国物流业景气指数为52.1%
山西长子“羊倌”养羊20余年 带动700余户养殖户发“羊财”
上海首个“两山”实践创新基地成功创建
广西医科大一附院向越南捐赠医疗防疫物资
黄埔海关破获案值5.5亿元走私进口二手挖掘机案
Copyright 2015-2022 欧洲仓储网版权所有 备案号:沪ICP备2022005074号-23 联系邮箱: 58 55 97 3@qq.com