我将同一地址设置为两个不同的地址指针。在检查那些指针时设置了地址之后,我在一个指针中获得了所需的地址,在另一个指针中获得了操作码。
================
gdb-peda$ set *0xffffffff81a95822=0xffffffff81400a1d
gdb-peda$ x 0xffffffff81a95822
0xffffffff81a95822 <default_idle+34>: 0xab24258b81400a1d
================
gdb-peda$ set *0xffffffff82603e18=0xffffffff81400a1d
gdb-peda$ x 0xffffffff82603e18
0xffffffff82603e18: 0xffffffff81400a1d
在上面的gdb命令中,您可以看到我设置了
0xffffffff81400a1d
对于 * 0xffffffff82603e18 和 * 0xffffffff82603e18 ,并且在设置新值后,当我得到 0xffffffff81400a1d (预期)和 0xab24258b81400a1d (某些操作码)。
我还注意到, 0xffffffff81a95822 的原始内容是 0xab24258b44659066 ,并将其设置为新值( 0xffffffff81400a1d )之后,只有较低的8位被更改。
有人可以解释一下这里发生了什么吗?为什么我在同一个地址上得到两个不同的结果?