uCFI论文设涉及到的相关知识点随记#1

1、Fuzzing技术是一种基于黑盒(或灰盒)的测试技术,通过自动化生成并执行大量的随机测试用例来发现产品或协议的未知漏洞。Fuzzing技术本质是依靠随机函数生成随机测试用例来进行测试验证,所以是不确定的。

目前,Fuzzing技术已经是软件测试、漏洞挖掘领域的最有效的手段之一。Fuzzing技术特别适合用于发现0 Day漏洞,也是众多黑客或黑帽子发现软件漏洞的首选技术。Fuzzing虽然不能直接达到入侵的效果,但是Fuzzing非常容易找到软件或系统的漏洞,以此为突破口深入分析,就更容易找到入侵路径。

2、AFL(American Fuzzy Lop),AFL就是著名的基于变异的Fuzzer,是一款开源的fuzzing工具。

  1. AFL内部实现细节小记
    ​​​​​​​​​​​​​​AFL内部实现细节小记 - 记事本​​​​​​

3、PTFuzz

这个工具是在AFL的基础上做出了改进,把AFL的基础上去除了插桩的依赖,把run_target里面的fork子进程跑插桩代码部分改成fork一个子进程利用PT收集包信息、筛选包信息,根据包信息获取当前种子的执行路径。

简单说一下他的创新点:

利用PT包信息

通过PT部件可以获得两个种类的包信息:基本执行信息(时间戳计时器、包流边界等)和控制流信息(时间、程序执行流等)。PT提供了三类调用包:直接调用、间接调用和远转换调用。当捕获了这样的Change of Flow Instructions(COFI)包时,就可以获取基本块的跳转信息,即边信息。

不同于统一大小的bitmap

AFL中的bitmap时固定大小(65536),而PTfuzz会在初始化载入二进制程序的时候,就构建了COFI map。利用python的CLE和capstone库把程序中text部分的调用地址记录下来并且存放在MSR寄存器,那么MSR寄存器就可以用来筛选PT的包信息。(MSR寄存器是PT指定可以实现筛选功能的寄存器)。
 

本文仅为个人学习做笔记之用,内容来源于网络。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值