-
研究目标为使用Matlab进行一维条形码的检测
资源介绍
北京大学博士学位论文 第四章 校验和感知的模糊测试技术
Height=1时,Width*Height*sizeof(int)的计算结果为4。因此,第13行只会分
配很少的内存,读取像素数据至内存的过程中就会发生堆溢出。
然而,在图像格式未知或具体校验和算法不公开时,传统模糊测试工具几乎
无法生成通过第6行检查的畸形图像文件。黑客社区[75][129]极力改进现有模糊测
试工具,但是依然无法有效对抗校验和检查机制。
上文已经介绍了一个好的校验和算法具有抗弱碰撞性和抗强碰撞性。因此,
针对正常图片随机修改而生成的畸形图片就很难通过完整性检查。如果被随机修
改的部分是数据部分,修改后的图片通过完整性检查的概率就相当于找到一个
满足H(D′) = H(D) 的数据D′的概率,这里D代表原始正常数据部分;此外,只
有畸形数据内容D′引起程序崩溃才意味着发现了一个潜在的安全漏洞。虽然近
些年来国际上对散列函数碰撞的研究取得了显著进展,特别是我国学者王小云
等[160]在该方向上做出突出贡献,但现有散列函数碰撞的研究并不能直接帮助模
糊测试克服校验和检验问题。
如果被随机修改的部分是输入校验和值,由于H(D)返回的是唯一的结果,生
成的畸形图片就根本不可能通过完整性检查。即便是通过符号执行技术,收集到
执行路径上对输入数据的约束条件,在D和C都是未知变量的情况下,也不可能
完全求解H(D) = C这一类型的约束条件[145, 42]。
4.4 研究目标
基于校验和机制的数据完整性检查严重阻碍了现有模糊测试技术的应用。
图5.2(a) 给出无校验和机制时模糊测试的效果图。大量的畸形数据能够充分遍历
程序执行空间,进而发现潜在的漏洞。图中实线箭头表示畸形数据能够有效测试
的程序执行空间。
图5.2(b)形象化展示了校验和机制给模糊测试技术造成障碍。图中八边形图
案代表校验和检查点。图中虚线箭头表示畸形数据无法测试的程序执行空间。大
量的畸形数据能驱使程序运行至校验和检查点,但由于这些畸形数据很难通过校
验和检测,这些数据仅能对一小部分代码执行空间测试,无法发现校验和检测点
以后的安全漏洞。
– 47 –