根据https://www.ethicalhacker.net/columns/heffner/intro-to-assembly-and-reverse-engineering
mov 0xffffffb4,0x1
将数字1移动到0xffffffb4。
问题是,当我尝试使用以下C代码时,
int a = 1;
int b = 13;
int c = 133;
与该代码等效的汇编语言是这样的。 (我从GDB那里得到了这个)
0x00000000004004ee <+8>: mov DWORD PTR [rbp-0x4],0x1
0x00000000004004f5 <+15>: mov DWORD PTR [rbp-0x8],0xd
0x00000000004004fc <+22>: mov DWORD PTR [rbp-0xc],0x85
请注意,我的汇编代码将数字1移动到寄存器RBP。
但是,根据该URL的说明,它将数字1移动到0xffffffb4,0xffffffb4看起来像内存地址。
所以我的问题是:
我还在Immunity Debugger上对此进行了测试,发现变量的值被移动到寄存器ESP中。