change basic block label format from .L%x to .L%d#27
change basic block label format from .L%x to .L%d#27Marsman1996 wants to merge 1 commit intoHexHive:masterfrom
Conversation
|
Hello, thanks for the PR. Can you explain the problem with using If you're using afl-gcc, this is a wrapper around gcc itself and gcc supports arbitrary label names that would be valid symbol names in an ELF binary, so we should be able to encode these integers any way we like, provided they are unique. I would be surprised if picking labels with A-F in them defeats AFL. I'm not sure which AFL variant you are using, but I'd strongly recommend AFL++ available here. https://github.com/AFLplusplus/AFLplusplus - This version is supported, while the original AFL has been somewhat abandoned, and may have issues with the latest Linux distributions that might explain what you're seeing. But the best place to start is a small test case so we can see and reproduce your issue. Thanks a lot! |
|
Hi, Sorry for the inconvenient that I put some key information in #28 instead of putting them in this PR.
I tested
Yes, I am using AFL++. Actually, almost all AFL-family fuzzers inherent the instrumentation strategy of afl-gcc/afl-clang from vanilla AFL. People tend to modify the LLVM IR mode. if ((isdigit(line[2]) ||
(clang_mode && !strncmp(line + 1, "LBB", 3))) &&
R(100) < (long)inst_ratio) {As we can see, it only instrument the label with the format Best wishes |
Using
.L%xcould miss some instrumentations when instrumenting binary with AFL.