我设法通过查看/proc/kallsyms找到了sys_call_table的地址。我有以下代码:
void **sys_call_table;
#include <linux/kernel.h>
#include <asm/unistd.h>
void Java_com_example_testlib_LibLoader_test() {
sys_call_table = (void *) 0xc023cd28;
LOGD("backup original sys_open %p", sys_call_table[__NR_open]);
}
问题是代码导致Fatal Signal Exeption
为什么尝试获取sys_call_table 条目 sys_call_table[__NR_open]
我也尝试获取条目 0、1、2,...。