CS-220 Spring 2016 Lab 10 report Due: April 15, 2016 Name: 1. Cut and paste a copy of your successful test.txt file that creates a texthex.txt file that invokes the target function: 2. Notice that the target function in target.c ends with an "exit(0)" invocation. The "exit(0)" causes the target function to return directly to the operating system cleanup routine instead of to the function that called "target". If the target function had ended with "return false" instead of "exit(0)", would target still run sucessfully? If not, what might happen and why? 3. If target.c had used fgets instead of gets, would your buffer overflow attack have been succesful? Why or why not? 4. Did the Makefile make this lab easier or harder to run? Were you ever surprised at the dependencies that were built or rebuilt as a side effect of running the make command with a specific target? Is it worth the time to build a correct Makefile so that dependencies are automatically taken care of? 5. Now that you know how to do a buffer overflow attack, could you do a buffer overflow attack on target WITHOUT looking at target.c? If not, why not? If so, what tools would you use to figure out what is in the "target" executable file?