I have a problem when trying to overwrite the EIP (basic 64 bit buffer overflow) with an address 0x0000000000400546 which is a function that is located in the same program .. the EIP is at 88 bytes .. so my code in gdb will be :
python -c 'print "A"*88 + "\x46\x05\x40\x00\x00\x00\x00\x00"'
I finally get the address modified to : 0x00007fff00400546
Program received signal SIGSEGV, Segmentation fault. 0x00007fff00400546 in ?? ()
Why it is modified with the 7fff in the middle? And how to point to this specific address?