在映射的内存中查找指令的地址

时间:2019-03-27 11:06:19

标签: shared-memory

我有一个名为“ test”的可执行文件。我正在使用“ mmap”命令将可执行文件映射到另一个名为“ mmap_test”的可执行文件的地址空间。我无法找到将“ test”中的一条指令映射到的地址。

我尝试了以下步骤:

  1. 一旦遇到所需指令,首先运行“ gdb test”,然后运行“ info line”,以提取指令的偏移量。因此,在这一步,我得到了偏移量(=文本段偏移量+文本段中指令的偏移量)。 将此偏移量表示为(OFF)。

  2. 我使用mmap命令获取基地址(BA)。

所以,我假设映射内存中的网络地址为(RES) = BA + OFF

现在,为了找到(OFF),我启动了'gdb test'并说了'break main'。然后,我触发命令“ layout asm”。 主机的地址为“ 0x78a”。触发命令“运行”后,主设备的地址将更改为“ 0x55555555478a”。

如何将与0x78a对应的地址放入新映射的内存中?

0 个答案:

没有答案