afl-clang-fast插桩代码解析第一部分:afl-llvm-pass.so.cc

AFL-clang-fast是针对clang的包装器,使用LLVM插桩技术提升模糊测试性能。它插入特定的伪代码到每个BasicBlock中,用于模糊测试的覆盖率分析。通过这篇文章,读者可以了解AFL-llvm-pass.so.cc的解析过程以及LLVM IR的相关概念。
摘要由CSDN通过智能技术生成

和afl-gcc是对gcc的包装类似,afl-clang-fast是对clang的包装。afl-clang-fast通过llvm pass来实现插桩,性能和效率更胜一筹。

afl-clang-fast插桩最终目的,和afl-gcc一样,将以下伪代码插入到每个Basic Block中:

cur_location = <COMPILE_TIME_RANDOM>; 
shared_mem[cur_location ^ prev_location]++; 
prev_location = cur_location >> 1;

afl-llvm-pass.so.cc的解析,网上有代码写的很清楚,这里不重复了,只是引用一下别人的文章。

llvm基本概念,参考:AFL二三事 -- 源码分析 2-二进制漏洞-看雪论坛-安全社区|安全招聘|bbs.pediy.com

llvm IR相关概念,参考:

华为开发者论坛

afl-llvm-pass.so.cc解析,参考:

afl中llvm_mode下的afl-llvm-pass.so.cc源码解析_acnowa的博客-CSDN博客

sakuraのAFL源码全注释(一)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值