paint-brush
afl-unicorn: Part 2 — Fuzzing the ‘Unfuzzable’by@njvoss299
12,260 reads
12,260 reads

afl-unicorn: Part 2 — Fuzzing the ‘Unfuzzable’

by Nathan Voss15mNovember 1st, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Unicorn Mode as demonstrated in my <a href="https://medium.com/@njvoss299/afl-unicorn-fuzzing-arbitrary-binary-code-563ca28936bf" target="_blank">previous article</a> is not overly useful on the surface. It has lots of limitations that make it clumsy and slow to employ against most real-world situations. For example, what if the binary you want to emulate calls an imported library function that is likely to call into the kernel such as <em>malloc() </em>or<em> printf()</em>? What if the code you want to fuzz is highly stateful, and requires lots of memory regions (heap allocations, stack pointers, global variables, etc.) that aren’t known until run-time? In fact, just about the only straightforward use of it that I’ve found is when working with flat embedded run-time system memory snapshots recovered from firmware by a debugger.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - afl-unicorn: Part 2 — Fuzzing the ‘Unfuzzable’
Nathan Voss HackerNoon profile picture
Nathan Voss

Nathan Voss

@njvoss299

L O A D I N G
. . . comments & more!

About Author

TOPICS

THIS ARTICLE WAS FEATURED IN...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite