一些Android sys_call_table获取的方法

来源:互联网 发布:java lambda 性能 编辑:程序博客网 时间:2024/06/05 16:21

前天为这个问题纠结好久,搜索了好多方法,成功的不多。这里记下前天用的

在su的情况下,用su权限执行

echo 0 > /proc/sys/kernel/kptr_restrict

cat  /proc/kallsyms | grep sys_call_table 

Android4.4之前的版本可以如下获取

unsigned long* get_vector_swi_addr(){  const void *swi_addr = 0xFFFF0008;  unsigned long vector_swi_offset = 0;  unsigned long vector_swi_instruction = 0;  unsigned long *vector_swi_addr_ptr = NULL;   memcpy(&vector_swi_instruction, swi_addr, sizeof(vector_swi_instruction));  vector_swi_offset = vector_swi_instruction & (unsigned long)0x00000fff;  vector_swi_addr_ptr = (unsigned long *)((unsigned long)swi_addr + vector_swi_offset + 8);  return *vector_swi_addr_ptr;}


0 0
原创粉丝点击