Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Code Fuzzing (Not Input Fuzzing)

Name: Anonymous 2018-10-16 12:53

Fuzzing is a term that usually means using software to automate the process of putting random (or sequential) data into inputs in a program in order to test for security issues. It's not very smart, but it still gets results because you can do it so quickly, and it's basically a form of brute-forcing, in a way. But that's for fuzzing by putting input into a premade program.

What about fuzzing programs themselves? As in, you write a fuzzer that, instead of putting input into a program, writes programs. Then you can use testing later to see if it was a useful program or not. It's like the thousand monkeys on typewriters things, except for computers and software instead of books.

Eventually, you could discover all kinds of algorithms this way. Or you could come up with other kinds of neat software too.

It's not random as in /dev/random. It's semi-arbitrary data bounded by certain rules, like you wouldn't have the "random" code be invalid syntax, so the random stuff could be struct, int, function, etc but not gibberish. You could still get runtime errors, but not compile-time errors. But think of how combination locks can go from 0000 to 9999. You'd be trying to go through an entire address space, based on constraints for the input and also the maximum size of the program (let's say, 10KB to start with). Then you generate programs of that size or smaller, that contain certain language-related words and some sort of easy naming scheme, like var1, var2, var3, etc just to make it simple.

Now, imagine that you copyrighted all of that code. You can copyright all sorts of previously unknown algorithms and shit. Wouldn't that be cool?

Name: Anonymous 2018-10-16 14:40

>>1
That approach hits exponential wall very fast, you need https://en.wikipedia.org/wiki/Genetic_algorithm to evolve software from random blocks using compilability as fitness function.

Name: Anonymous 2018-10-16 14:51

This idea sounds like a generalization of superoptimization. See http://stoke.stanford.edu/ for instance.

Name: Anonymous 2018-10-16 14:52

STOKE can be used in many different scenarios, such as [...] synthesizing an implementation from scratch [...]

Name: Anonymous 2018-10-16 14:55

How do you create criteria for what's ``useful''?

Name: Anonymous 2018-10-16 15:00

>>5
With unit tests

Name: Anonymous 2018-10-16 15:03

>>5
maybe train a neural network on useful short programs to get an idea of a good program vs. a junk program

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List