Virtual-Box
Start "Linux Hacking"   
  login is cu
  password is "test"
The programs are under 
  cu$> app-material/progs
Programs can be updated using
  hg pull
  hg update
  hg revert --all
Emacs can be used to edit files
  emacs -nw ...file....     (is also an alias)
Compiler
  gcc -O0 -o file file.c
Backtick is key §/±.
C0.c
====
Add the bigger string and the long is printed out differently.
foo("my string is too long !!!!! \x15\xcd\x5b\x07");
C1.c
====
needs to be called using
  ./C1 `./args1-good`
  ./C1 `./args1-bad`
or in gdb using
  gdb --args ./C1 `args1-bad`
C2.c
====
called with
  
  ./args2-good | ./C2
  ./args2-bad  | ./C2
C3.c
====
(shell injection)
called with 
  ./C3
opens a new shell
C4.c
====
Format string attack
  ./C4 "%s"
  ./C4 `./args4`
This vulnerability does not need the defences, but prints out
the string only correctly with `./args4`. The %s option needs
  -mpreferred-stack-boundary=2
C6.c
====
Enter the password :
hhhhhhhhhhhhhhhhhhhh
Wrong Password 
Root privileges given to the user
------------------------------------
to switch off address randomization
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
C0.c
add to string 
 
  " \x15\xcd\x5b\x07"
to get
  foo("my string is too long !!!!! \x15\xcd\x5b\x07");