ida should have declared STRING to be a LOCAL variable with a value of -60h look at the start of function / procedure ( 68 + STRING ) == ( 68 + (- 60 ) ) == (68-60) == 8 it is same as what ollydbg shows . IDA's disassembly...

You should open the file in a dissembler, find where it makes the call to IsDebuggerPresent and then ultimately closes the application (or shows an error or what ever), this piece of code you can NOP in order to disable the check. You can read the ASM code with dissemblers...

how do I follow the pointers in memory to see the data in memory? I think you should be able to just right-click on the pointer and choose "Follow in Dump". Then you can choose 4-byte layout in the dump and again follow the buf pointer via the same...

OllyDbg currently does not support debugging 64 bit apps, however the developer stated to start the development of a 64 bit version as soon as his free times allows him. For a 64 bit debugger, take a look at WinDBG.

Well, I tried and it worked for me: I compiled the code with onlinecompiler.net, which use mingw as far as I know. Here is the link to the executable. It may be a problem with your compiler, but neither gcc/mingw nor cl.exe are modifying hardcoded strings at compile time. Also,...