A very funny thing about fuzzing is how random input testing used to be so looked down upon by the software testing community. Read old (1970s) testing books and you'll see comments like "random testing is the worst kind of testing". I still saw this even as recently as a decade ago.
Fuzzing is not random testing though. It's directed random testing.
How to break everything by fuzz testing
21–30 of 39 posts
Re: How to break everything by fuzz testing
#22Re: How to break everything by fuzz testing
#23> The fix for this was fairly straightforward - I just made the library keep a record of the previously visited IFDs and bail out if it found a loop. If you just want to detect loops, keep a “+1” pointer that you use to increment through the data; also, keep a “+2” pointer that is advanced twice each time your “+1” pointer advances: either your “+2” pointer hits the end, or it becomes equal to your “+1” pointer — in…
Re: How to break everything by fuzz testing
#24> The fix for this was fairly straightforward - I just made the library keep a record of the previously visited IFDs and bail out if it found a loop. If you just want to detect loops, keep a “+1” pointer that you use to increment through the data; also, keep a “+2” pointer that is advanced twice each time your “+1” pointer advances: either your “+2” pointer hits the end, or it becomes equal to your “+1” pointer — in…
https://en.wikipedia.org/wiki/Cycle_detection#Floyd's_Tortoi...
Re: How to break everything by fuzz testing
#25Fuzzing is fun! If you're doing it on your personal computer (as opposed to a cloud VM somewhere), I'd suggest putting the testcase output directory on a spinning-rust hard drive that you don't care about instead of your (presumably much more expensive) internal SSD. It creates an impressive number of disk writes. I've been thinking about fuzzing JavaScript code (not attacking V8 or SpiderMonkey, but the JS code itse…
Then the impressive number of writes are all to memory, which should pose no problem.
Re: How to break everything by fuzz testing
#26A very funny thing about fuzzing is how random input testing used to be so looked down upon by the software testing community. Read old (1970s) testing books and you'll see comments like "random testing is the worst kind of testing". I still saw this even as recently as a decade ago.
Re: How to break everything by fuzz testing
#27Earlier quoted context omitted.
The kind of bugs that would take probably a lot of time of think of and write unit tests for, in advance. Would it? Maybe it's because I've had a "low-level upbringing", but whenever I'm writing parsing code for a file format, "assume any byte of data you read can have any value" is the norm. The rest of it follows from there.
Yeah, I've gotten to the point where I can't do any arithmetic on any values without immediately adding integer wrap tests afterwards.
Re: How to break everything by fuzz testing
#28Interesting. Is there any fuzzing libraries for c#?
Re: How to break everything by fuzz testing
#29My favorite personal fuzzing story is from 1987 when a friend said his x86 graphics drawing program was solid, and I said OK and smashed both hands on the keyboard and it insta-crashed.
Re: How to break everything by fuzz testing
#30A very funny thing about fuzzing is how random input testing used to be so looked down upon by the software testing community. Read old (1970s) testing books and you'll see comments like "random testing is the worst kind of testing". I still saw this even as recently as a decade ago.