Skip to content

Conversation

@practicalswift
Copy link
Contributor

Add fuzzing quickstart guide to make it trivial to start fuzzing Bitcoin Core.

Fuzzing is fun and having more people contributing coverage-increasing inputs to https://github.com/bitcoin-core/qa-assets would be awesome :)

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch from 27f479d to 1ef9506 Compare March 13, 2020 12:43
@fanquake fanquake added the Docs label Mar 13, 2020
@kiminuo
Copy link
Contributor

kiminuo commented Mar 13, 2020

@practicalswift This is very informative. 👍

After reading https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md, I was still a bit unclear what that AFL really is. Maybe add http://lcamtuf.coredump.cx/afl/ URL to make it super clear that it's just another fuzzer ("american fuzzy lop")?

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch 3 times, most recently from 0809017 to b21d880 Compare March 13, 2020 15:55
@DrahtBot
Copy link
Contributor

DrahtBot commented Mar 13, 2020

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

No conflicts as of last run.

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch 7 times, most recently from f185caf to 0823aa7 Compare March 14, 2020 17:04
@practicalswift practicalswift changed the title doc: Add fuzzing quickstart guide doc: Add fuzzing quickstart guides for libFuzzer and afl-fuzz Mar 14, 2020
@practicalswift
Copy link
Contributor Author

@kiminuo Very good point! I've now also added a quickstart guide for afl-fuzz. Let me know what you think about the current version :)

@kiminuo
Copy link
Contributor

kiminuo commented Mar 14, 2020

@practicalswift I find it very good. Thank you for the update!

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch from 0823aa7 to 21fa6cb Compare March 15, 2020 20:20
@practicalswift
Copy link
Contributor Author

Updated by adding a link to a nice libFuzzer tutorial provided by Google :)

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch from 21fa6cb to 24a22b3 Compare March 16, 2020 14:43
@practicalswift
Copy link
Contributor Author

@Thoragh Oh, good catch! Now added afl/.

Thanks a lot for testing the instructions. That's great!

@practicalswift
Copy link
Contributor Author

Rebased! :)

@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch from 24a22b3 to 21e553d Compare March 18, 2020 22:15
@practicalswift practicalswift force-pushed the fuzzing-quick-start-guide branch from 21e553d to 33dd764 Compare March 18, 2020 22:32
@practicalswift
Copy link
Contributor Author

Ready for merge? :)

@maflcko
Copy link
Member

maflcko commented Mar 24, 2020

ACK 33dd764

Copy link
Member

@fanquake fanquake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 33dd764 - ran through the quick start and process message instructions. macOS users might see issues with afl-fuzz.

$ cd bitcoin/
$ git clone https://github.com/google/afl
$ make -C afl/
$ make -C afl/llvm_mode/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

macOS users will likely get stuck here (even using brew installed llvm). This will fail to link given afls usage of -znodelete. Dropping that flag leads to issues with undefined symbols.

@fanquake fanquake merged commit 5b4a9f4 into bitcoin:master Mar 25, 2020
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Mar 28, 2020
… and afl-fuzz

33dd764 doc: Add fuzzing quickstart guides for libFuzzer and afl-fuzz. Simplify instructions. (practicalswift)

Pull request description:

  Add fuzzing quickstart guide to make it trivial to start fuzzing Bitcoin Core.

  Fuzzing is fun and having more people contributing coverage-increasing inputs to https://github.com/bitcoin-core/qa-assets would be awesome :)

ACKs for top commit:
  MarcoFalke:
    ACK 33dd764
  fanquake:
    ACK 33dd764 - ran through the quick start and process message instructions. macOS users might see issues with afl-fuzz.

Tree-SHA512: f3ca972ce6ed0df8bb8177bdbb1e16d8a235941ffe4fa7b95ce9520b6454694ee26d2c545eac0b8b81856a77e26befda0922a9121a445dd936a0e9f9dd034160
@practicalswift practicalswift deleted the fuzzing-quick-start-guide branch April 10, 2021 19:40
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants