大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
给你写几个。这个本来很简单的。
创新互联专业为企业提供泰顺网站建设、泰顺做网站、泰顺网站设计、泰顺网站制作等企业网站建设、网页设计与制作、泰顺企业网站模板建站服务,十余年泰顺做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
import binascii
import struct,ctypes
fp1=open('test1.txt','rb')
fp2=open('test2.txt','wb')
c=fp1.read(1)
crc = binascii.crc32(c)
while True:
fp2.write(c)
c=fp1.read(1)
if not c:break
crc = binascii.crc32(" world", crc) 0xffffffff
fp2.write(struct.pack('l'crc))
fp2.close()
fp1.close()没有验证过是否正确,仅供参考。
crc检验原理实际上就是一个p位二进制序列之后附加一个r位二进制检验码(序列), 从而构成一个总长为n=p+r位的二进制序列, 附加在数据序列之后的这个检验码与数据序列的内容之间存在这某种特定的关系. 如果干扰因素使数据序列中的某一位或者某些位发生变化,这种特定的关系就会被破坏, 因此通过这种特性可以利用来爆破文件的内容.
文件的内容只有相同的时候他的crc校验才会一样.只要已知压缩文件的长度已知就可以获取他的crc32值来与我们的内容计算得到的值进行相互比较, 从而得到文件内容.(前提是文件内容长度够小才可以通过这种方法来实现,否则内容过长pc的算力有限)
现在有一个flag.zip 里面有一个flag.txt 文件 密码未知
使用模块如下:
得到文件的内容为4个字节长度
字典模块通过string模块得到
调用:
如果文件内容过长的话, 通过这种方式就不现实了.
解压文件得到如下的压缩文件
得到每个压缩包都是4个字节的大小, 压缩的文件为data.txt, 通过脚本得到文件内容, 脚本如下:
运行结果部分如下:
可以看见才多长这个东西很考验pc的性能, 然后直接进行base64解码, 得到的内容转为rar格式的文件, 然后补全文件头得到flag, 这里具体就不阐述了
得到的内容如下:
个人网站
最近项目中用到了跟硬件通信的crc8校验,花了点时间研究了一下python的crc8校验,但是一直没有找到好的技术突破。
google了一番,昨天测试了网上的几种方法都不正确,确定了使用crcmod库来实现,参考官方文档和国内的一遍文章,具体如下:
其实python3 只需要3步即可实现crc8校验,官方有crc8,但是默认是crc-8不是我要找的crc-8-maxim,而crcmod库是支持多种crc8计算的。
下面我是采用crc-8-maxim算法的,多项式:x8+x5+x4+1(二进制为100110001),0x31
正确运行结果为:0xd6
下面我们使用在线crc校验工具测试一下:
测试截图如下:
到此我们完成了crc8校验和。
目前有三种方式实现转换:
关于crc8的理论,本文不再赘述了。可以参考以下文章:
用于计算 modbus 通信协议的 CRC16 校验值。
举例: 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 得到校验值为 0xB0CF (或 0xCFB0 )
计算方法,分两种,直接计算和查表计算。