libnet is required for this to work. After compiling the programs, run in the following order : ./create_payload output_file follow the instructions on screen. When in doubt see the comments in the source code. This will put the payload data in output_file. cat output_file | ./encode | ./inject -s bogus_source_ip -d the-binary_ip For some of the cases, eg 0 and 2, output will be returned. In that case, you should first send the payload for case 1 to set the return address of the output. After that run the following command to listen for the output : ./receive After that, send the payload for case 0 or case 2 and you should see the results printed out We have pre generated appropiate payloads for all cases. But you need to regenerate case 1 ( because case 1 sets the return address which is unique to your environment ). This is a ddos tool, so make sure you filter out traffic from your test machine before proceeding. If not you may end up launching a real attack.