
CRC是什么东西呢?其实我们大家都不应该会对它陌生,回忆一下?你用过RAR和ZIP等压缩软件吗?它们是不是常常会给你一个恼人的“CRC校验错误”信息呢?我想你应该明白了吧,CRC就是块数据的计算值,它的全称是“Cyclic
Redundancy
Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。(哇,真拗口,希望大家不要当我是唐僧,呵呵。^_^)
CRC有什么用呢?它颂唯的应用范围很广泛,最常见的就是在网络传输中进行信息的校对。其实我们大可以把它应用到软件保护中去,因为它的计算是非常非常非常严格的。严格到什么程度呢?你的程序只要被改动了困唤一个字节(甚至只是大小写的改动),它的值就会跟原来的不同。Hoho,是不是很厉害呢?所以只要给你的“原”程序计算好CRC值,储存在某个地方,然后在程序中随机地再对文件进行CRC校验,接着跟第一次生成并保存好的CRC值进行比较,如果相等的话就说明你的程序没有被汪樱凯修改/破解过,如果不等的话,那么很可能你的程序遭到了病毒的感染,或者被Cracker用16进制工具暴力破解过了。
参考资料:矛与盾的较量(2)——CRC原理篇%20%20老罗的缤纷天地.htm
MODBUS采用CRC16校带困验,校验源程森行逗序网上很容易搜到。不管是MODBUS指令还是返回数据,最后两个字节都是CRC16校验码,将校验码前面的所此卖有字节进行CRC16换算即可。while(len--!=0)这句的len的值循环一次就减少1,先执行len!=0,再执行腔衫len--。
当len为0时退出循环前圆锋。
for(i=0x80
i!=0
i/=2)
0x80是十慧晌六进制数,也即128
当i!=0时,执行循环体,
然后i=i/2,即i值减半。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)