代码之家  ›  专栏  ›  技术社区  ›  drilow

函数指针使用的地址

  •  1
  • drilow  · 技术社区  · 7 年前

    这个问题与大学作业有关,所以我将保持抽象,不透露挑战的任何部分。

    给定一个已编译的C程序(Linux上的x86\u 64 ELF),是否有办法仅从反汇编中知道该程序中的函数指针将包含哪些地址,以指向程序执行过程中的特定函数(也在程序内部,而不是外部库)?是否可以仅从反汇编中该函数的地址推断出完整的地址?

    例如,如果程序包含指针: void (*ptr) () = &someFunc; ,ptr的内容是否可以从反汇编中someFunc的地址推断出来?

    1 回复  |  直到 7 年前
        1
  •  1
  •   drilow    7 年前

    所以我设法解决了这个问题。事实证明,函数指针使用的地址就是反汇编中的确切地址。最后,我通过gdb了解到了这一点,并查看了寄存器的内容。