I would like to make a software fuzzer.
What I want to do is open a program and the fuzzer should find all the functions on the application that take input and then try to write a string that I provide the fuzzer with at the beginning.
The fuzzer should write that string in all input functions in the program and it should notify me when the program crashes because of a specific input in a function. For example, when the fuzzer injected a long string of A's into a field called artist name, and the program crashed, I want to get an output that has in it the field name and the value that caused the crash and the report of windows if provided.
I know the application so big bit just give me some main steps I should read about or some API's I should use. I will write the program with C#. I can also write it with C++ and Python but I think it would be easier on C#. What do you think?