定向模糊测试aflgo中的能量调度

本文介绍了AFL中的AdaptivePowerScheduling,一种通过模拟退火策略动态调整种子输入的功率分配,使得远离目标路径的种子分配的能量减少,接近目标的种子则分配更多能量。这种方法旨在提高代码路径的探索效率。
摘要由CSDN通过智能技术生成

对应部分代码主要在
aflgo::afl-fuzz.c::4820

AFL 的一个核心思想是在模糊测试过程中动态地调整每个输入样本的 “power”,以便更有效地探索新的代码路径。功率在此上下文中用作一种权重,表示给定输入样本的变异应该尝试多少次。

传统的 AFL 通过比较直观的方式计算功率,但随着时间的推移,这种方法可能不是最优的。

“Adaptive Power Scheduling” (APS) 意味着使用更复杂、更智能的策略来决定如何为每个输入分配权重或功率。模拟退火是其中可能用于APS的一种策略。

  double power_factor = 1.0;
  if (q->distance > 0) {
    double normalized_d = q->distance;
    if (max_distance != min_distance)
      normalized_d = (q->distance - min_distance) / (max_distance - min_distance);
    if (normalized_d >= 0) {
        double p = (1.0 - normalized_d) * (1.0 - T) + 0.5 * T;
        power_factor = pow(2.0, 2.0 * (double) log2(MAX_FACTOR) * (p - 0.5));

    }// else WARNF ("Normalized distance negative: %f", normalized_d);
  }

距离目标位置"非常远"的种子s被分配的能量越来越少,直到只分配到原始能量pafl的大约三十二分之一

一个"非常接近"到达目标位置的种子s被分配越来越多的能量,直到分配到原来能量pafl的三十倍左右。

请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值