函数指针使用的地址
Address used by a function pointer
这个问题与大学作业有关,所以我会保持抽象,以免泄露挑战的任何部分。
给定一个已编译的 C 程序(x86_64 ELF on Linux),是否有办法仅从反汇编中知道该程序内部的函数指针指向哪个地址在程序的任何执行中到特定函数(也在程序内部,而不是外部库)?是否可以仅从反汇编中该函数的地址推断出完整地址?
例如,如果程序包含一个指针:void (*ptr) () = &someFunc;
,在反汇编中是否可以从someFunc的地址推断出ptr的内容?
所以我设法解决了这个问题。事实证明,函数指针使用的地址是反汇编中的确切地址。最后我想通了 gdb 并查看了寄存器的内容。
这个问题与大学作业有关,所以我会保持抽象,以免泄露挑战的任何部分。
给定一个已编译的 C 程序(x86_64 ELF on Linux),是否有办法仅从反汇编中知道该程序内部的函数指针指向哪个地址在程序的任何执行中到特定函数(也在程序内部,而不是外部库)?是否可以仅从反汇编中该函数的地址推断出完整地址?
例如,如果程序包含一个指针:void (*ptr) () = &someFunc;
,在反汇编中是否可以从someFunc的地址推断出ptr的内容?
所以我设法解决了这个问题。事实证明,函数指针使用的地址是反汇编中的确切地址。最后我想通了 gdb 并查看了寄存器的内容。