首页
社区
课程
招聘
[技术专题]软件安全测试(fuzz)之大家一起学2:认识PNG文件格式
发表于: 2008-10-23 12:35 13792

[技术专题]软件安全测试(fuzz)之大家一起学2:认识PNG文件格式

2008-10-23 12:35
13792

软件安全测试(fuzz)之大家一起学2:认识PNG文件格式

首先想和大家一起讨论的,是filefuzz。在我们开始继续深入Peach的数据定义之前,我决定先独立于peach,用一点篇幅介绍下文件格式。

学习file fuzz就要非常清楚要测试的文件格式。我们以PNG (Portable Network Graphics)为例,在附件中我给出了PNG图片文件格式的详细参考文档。

附件:PNG文件格式 PNG_format.zip

除了附件中的参考之外,在http://www.libpng.org/pub/png/能找到更多关于PNG的资源。

简单的总结一下文档中关于PNG文件格式的描述。



如上图:PNG文件可以简单的理解成一个文件头和一系列数据块,具体说来:

文件头:由八个字节组成,0x89504e470d0a1a0a
数据块:每个数据块由四部分构成,他们的描述依次如下:
Length :占四字节,表示数据块data域占多少个字节。(注意这里不包括length自身)
Type :占四字节,表示当前块的类型。一般是英文大小写字母的ASCII码(65~90或者97~122)
Data:数据区。大小可以是0字节
CRC:占四个字节,整个chunk的CRC校验码(Length+Type+Data)

下面我们打开一个PNG文件一起对照着文件格式在二进制编辑器中更加直观的来学习一下。这里我介绍一个解析文件结构很牛X的二进制编辑器010editor给大家。
可以去http://www.sweetscape.com/010editor/下载到。

上面这个PNG文件格式的示意图就是一个PNG格式的图片,这里就以它为例了,将其另存在本地文件PNG_chunk.png。

安装好010editor,用010editor打开PNG_chunk.png



如上图,界面看起来和Ultraedit也差不了多少,大家应该比较熟悉。

我们主要想用010editor的二进制文件模板,套用这些文件格式解析脚本,可以更容易更直观的搞清楚文件格式。

注意上图红色标出的几个模板按钮,打开下拉框,默认安装010editor只能识别出bmp,zip,wav这三种文件。为了能够识别PNG文件,我们需要去http://www.sweetscape.com/010editor/templates/下载额外的文件模板。

下载需要的模板,我们这次至少需要PNG12Template.bt模板。

按ctr+F5或者点第二个模板按钮,打开刚下载的PNG12Template.bt模板。

按F5或者点击第四个模板按钮,套用PNG文件模板。



如上图,运行成功后,可以看到010editor解析出了若干个chunk,并且能够用不同颜色标注出你所选中的某一个chunk的某一个字段。

这些工具和知识会为后面调试peach的数据定义带来很多帮助。

下一讲我们就一起来用peach定义这样一个PNG文件。

最后,小声说一下,《0day安全:软件漏洞分析技术》第二次印刷刚结束。第二次印刷总共勘误了50余处,包括了大家反映的插图不清,一个重要示意图的重复,若干出地址和指针的标注,以及错别字等等。感谢0day版朋友的勘误,书籍质量的提高离不开你们的支持(最后一句话是大声说的)。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (24)
雪    币: 233
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
sf,学习......
2008-10-23 13:04
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
3
010很强大
2008-10-23 13:16
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
4
学习PNG,回头再介绍一下PNG的压缩变种
2008-10-23 13:20
0
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
5
继续学习。

我又孤陋了,这么牛X的编辑器还第一次听说,感谢failwest!去下载个先。
2008-10-23 13:32
0
雪    币: 111
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
见世面了,呵呵
2008-10-23 14:17
0
雪    币: 111
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
Length :占四字节,表示数据块data域占多少个字节。(注意这里不包括length自身

为什么这里还得注上:注意这里不包括length自身?
data区并是一个并没包括length啊
一开始我还以为是除了length之外的字节数呢,呵呵
2008-10-23 14:45
0
雪    币: 62
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
嗯, 学习了
2008-10-23 15:02
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nop
9
010editor不错,以前一直用hachoir来搞,学习了.
2008-10-23 15:14
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
楼主  还要写书吗??什么时候再出版啊  记得在论坛里给大家通知下啊
2008-10-23 15:51
0
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
11
又见大牛现身了,mark一下。  hachoir貌似没有Win平台的。
2008-10-23 15:55
0
雪    币: 242
活跃值: (473)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
12
补充
记得大部分hex编辑器都可以套用结构的。
例如hex wordshop的
工具->结构查看器->
2008-10-23 16:42
0
雪    币: 333
活跃值: (11)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
13
下载了PNG12Template.bt来用,run的时候出错,是不是这个template出错还是有什么问题?
2008-10-25 22:53
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习。。。。收藏了一个。。。等汉化和Crack
2008-10-26 12:38
0
雪    币: 7143
活跃值: (3726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
asd
15
这些研究的人很多,搞科普的少
2008-10-26 13:12
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
学习.谢谢楼主分享
2008-10-26 17:49
0
雪    币: 141
活跃值: (1135)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
17
感觉还是.chm文件看起来爽,所以就整了一个。

PNG_format_chm.rar
上传的附件:
2008-10-26 18:07
0
雪    币: 203
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
努力学习,收藏
2008-10-26 19:08
0
雪    币: 169
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
搂主真厉害哟!
2008-10-27 00:58
0
雪    币: 163
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
发个 010 Editor v3的序列号

pediy

B25693AC179D17FF0F0D
2008-10-30 13:22
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
下一讲何时发布?难道只是为了卖书而使用的一个小技俩?
2008-11-24 10:44
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
严重期待中 
2008-11-26 19:06
0
雪    币: 159
活跃值: (38)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
23
png不是图像文件格式,对于软件调试有用不?
2008-11-26 21:38
0
雪    币: 154
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24


0day安全都出到第二版了,fuzz专题仍然停留在第二篇,太可惜了!
上传的附件:
2013-7-1 11:56
0
雪    币: 43
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
真好!!!!!!
2015-3-17 13:41
0
游客
登录 | 注册 方可回帖
返回
//