data=0x00000
offset=0
bmp=open('victim.bmp','wb')
bmpheader=0 #will be filled later
for x in range(1,16777216):
bmp.seek(offset)
bmp.write(data)
data=data+0x00001
offset=offset+1
这是一个来源,我尝试制作一个程序,它将填充一个带有十六进制值的bmp文件,如00 00 00,00 00 01等16 777 216次。错误在第10行(bmp.write)。
答案 0 :(得分:0)
添加import struct
,然后用
bmp.write(struct.pack('>I', data)[1:])
[1:]
是因为没有办法使用struct.pack
来创建一个3字节的项,所以它会创建一个(big-endian)4字节项并切断第一个字节。< / p>
此外,您的range
只有一个,而您的offset
逻辑完全是假的,应该删除。