常见的图片的二进制头文件开头
jpg格式的图片,以FFD8开头,以FFD9结尾、
gif文件的东西,47464938,一串数字,蛮好记的
有时候压缩包是损坏的,觉得他是一个压缩包,就可以改一下他的文件头,改成504B0304啥啥啥的,就可以以zip格式打开了
南邮平台上面有两个gif的题目,蛮有意思的
通常会在图片里隐藏一些其他的奇奇怪怪的东西,比如另一张图片,也比如说zip包(顺便说一下,zip包的头文件格式为504B0304)
交flag的时候,有时候试着把flag反过来交,或许就对了呢
还有一个东西叫图种,就是图片里面藏着种子(老司机~)
把图片保存下来改成zip解压一下就得到你要的种子了~~~
还有一个小东西binwalk,可以分析图片的什么东西的偏移量查看里面有什么奇怪的东西
还有dd命令,常用就知道是什么东西了
还有一个小东西是是foremost,不过可能经常出错,使用时要注意
winhex和010 editor是很好用的二进制编辑器,winhex下使用alt+G可以跳到指定偏移量。
菜鸡感觉010editor太高端了,还是winhex优雅轻量级~
一张图片里面可以藏着很多东西,有时候用hex打开就可以看16进制就可以看得到很多奇怪的东西吧
PNG文件是无损格式的图片
常见的有lsb隐写,如果通过binwalk跑出来里面发现有zlib文件或者data数据,一般就是lsb隐写,通过stegsolve可以将最低通道的数据提取出来
还有如果发现打不开的话要注意查看crc32的值,可能是因为修改了长宽使得png文件扭曲无法查看(win忽略crc32的效验,可以直接打开,但是因为扭曲过一般无法查看出来,linux下是严格要求的,如果不匹配的话文件是无法打开的)
一般处理方法就是通过爆破来搞定匹配,从而找出正确的长宽(要熟悉png的文件格式)
爆破代码如下
import binascii
def burp_crc(check):
for w in range(0x500):
for h in range(0x500):
a=('494844520000'+hex(w)[2:].rjust(4,'0')+'0000'+hex(h)[2:].rjust(4,'0')+'0802000000').decode('hex')
if (binascii.crc32(a) & 0xffffffff) == check:
print '%d*%d' % (w,h)
return;
burp_crc(0xF37A5E12)
python大法好,010比winhex更加优秀,我错了。。。