/ 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、...も取得しようとしたことです。