I'm learning some hacking with Erickson's "The Art of Explotation". To try out the exploits myself, I'm using C on a virtual maching with 32-bit Debian on my windows laptop (in VirtualBox).
Many of the exploits rely on overwriting pointers with address via an overflow (i.e., using something like "\x32\xbf\xcf\x12" as input to a string). However, on my machine many of the relevant addresses (of variables on the stack or function pointers) contain zeros, which terminates the string and the exploit fails.
Is there a way avoid zeros in important addresses?
Maybe by changing the setup of the virtual machine or the Linux?
I've found some questions regarding this problem here and here, where the solution was to use a 32-bit architecture. However, I already use one. Is this a problem of using a virtual machine?