首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libfuzzer模糊线束碰撞不可复制

libfuzzer模糊线束碰撞不可复制
EN

Stack Overflow用户
提问于 2021-09-20 02:00:35
回答 1查看 266关注 0票数 3

我想弄清楚现有的stbi线束的线束,并做一个小的改变。从free(img)if(img) free(img)

使用此命令clang -fsanitize=fuzzer,address -ggdb -O0 stbi_read_fuzzer.c -o fuzzer编译,并使用./fuzzer corpus -fork=1 -ignore_crashes=1 -dict=jpeg.dict -seed=123运行

几个小时后,它会产生一些崩溃(全局缓冲区溢出,堆在空闲后使用,缓冲区溢出)。但是当我运行所有的崩溃文件时,它没有崩溃

代码语言:javascript
复制
aldo@vps:~/stb/tests$ ./fuzzer crash-edab9036233c269e258fe93c2a46d46d5d6e7112
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 2279336272
INFO: Loaded 1 modules   (2132 inline 8-bit counters): 2132 [0x61b510, 0x61bd64),
INFO: Loaded 1 PC tables (2132 PCs): 2132 [0x5d0258,0x5d8798),
./fuzzer: Running 1 inputs 1 time(s) each.
Running: crash-edab9036233c269e258fe93c2a46d46d5d6e7112
Executed crash-edab9036233c269e258fe93c2a46d46d5d6e7112 in 3 ms
***
*** NOTE: fuzzing was not performed, you have only
***       executed the target code on a fixed set of inputs.
***

为什么它没有坠毁?我使用的是llvm12来自apt.llvm.org的ubuntu20.04

EN

回答 1

Stack Overflow用户

发布于 2022-02-27 19:20:15

老问题,但我也有类似的问题。

在我的例子中,我模糊了一个有状态的API,并忘记在LLVMFuzzerTestOneInput的开头重新设置API。因此,以前的调用将API设置为无效状态,但它没有立即崩溃。只有在第二次调用时,API才会崩溃。

因此,我的猜测是,类似地,在您的工具中,某些内部状态/全局变量在之前的调用中发生了更改。试着重置一切。

这是因为libFuzzer在进程中运行,并且尽可能频繁地调用LLVMFuzzerTestOneInput函数。这个程序不会单独重新初始化。我是记录在案

  • 在相同的过程中,模糊引擎将使用不同的输入多次执行模糊目标。
  • 理想情况下,它不应该修改任何全局状态(尽管这并不严格)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69248386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档