就像动态库函数能被运行中的程序实时调用一样,可执行程序的全局符号函数也可以被用来单独执行。在底层的机器世界中,所谓的函数执行,只不过是将函数对应首条指令的内存地址加载到PC寄存器上执行而已。
利用dlsym函数,可以获取 .dynsym section 全局符号对应的内存地址,然后就可以执行这个地址(函数).
在这个特性的基础上,可以开发很多上层调试类业务代码。比如查看进程的重要结构体内容,或者 执行一个程序中的添加链表节点的函数。
就像动态库函数能被运行中的程序实时调用一样,可执行程序的全局符号函数也可以被用来单独执行。在底层的机器世界中,所谓的函数执行,只不过是将函数对应首条指令的内存地址加载到PC寄存器上执行而已。
利用dlsym函数,可以获取 .dynsym section 全局符号对应的内存地址,然后就可以执行这个地址(函数).
在这个特性的基础上,可以开发很多上层调试类业务代码。比如查看进程的重要结构体内容,或者 执行一个程序中的添加链表节点的函数。