Recently I tried to use
Hopper Disassembler to do the reverse engineering on a Mac application. After decompiling the executable file, I got a bunch of cstrings defined in the specific location. For example, on
0x105d4a804 there is a string
But my problem is that: is
0x105d4a804 a relative address or an absolute one?
I found that if I use gdb to run the executable file, I can use x/s to print that string correctly, exactly in that location.
This raises my concern. Is this string probably defined as a global variable? Why is the memory location in gdb as same as defined in the executable? Any explanation will be appreciated!