一些Android sys_call_table获取的方法

原创 2016年06月01日 00:30:43

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

在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;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Hook android系统调用的实践

一、环境条件 Ubuntukylin 14.04.5 x64bit Android 4.4.4 Nexus 5 二、Android内核源码的下载 执行下面的命令,获取 Nexus 5手机 设备...
  • QQ1084283172
  • QQ1084283172
  • 2017年05月01日 19:00
  • 3287

多种方法获取sys_call_table(linux系统调用表)的地址

一.方法一:常用方式,也是一google一堆的方式我们首先需要找到call table-with-offset的特征,先看下面的代码syscall_call:         call *sys_c...
  • dog250
  • dog250
  • 2011年05月28日 14:06
  • 9773

获取Linux 2.6.x sys_call_table

网上搜索了一下, 发现此代码主要原理是通过搜索 int 0x80的中断服务程序中的sys_call_table来实现.  在linux中所有的syscall都是调用int 0x80, int 0x80...
  • force_eagle
  • force_eagle
  • 2009年02月26日 09:21
  • 5002

Linux 2.6 中导出sys_call_table表修改系统调用函数

Linux中实现系统调用
  • SUN20082567
  • SUN20082567
  • 2014年08月21日 16:31
  • 2583

截获系统调用(sys_call_table/VFS)

转自http://blog.chinaunix.net/uid-20196318-id-28808.html 方法1:修改系统调用表(适用于linux-2.4内核) 内核使用sys_call_tab...
  • yun2205446823
  • yun2205446823
  • 2016年02月29日 19:36
  • 472

android的一些比较有用的方法

一:判断某个activity是否在最上层显示 boolean isFront(Activity context){ try{ ActivityManager act = (ActivityManage...
  • u012806692
  • u012806692
  • 2016年03月23日 17:06
  • 325

sys_call_table 的总结

在学习代码的过程中,用到了替换sys_call_table替换的问题,自己查了相关资料,在这里总结一下: 首先sys_call_table 是系统内核的一块区间,用来将调用号和服务连接起来,系统调用某...
  • u012510450
  • u012510450
  • 2017年10月12日 15:20
  • 372

MessageBox.Show();报最匹配的重载方法具有一些无效参数解决方法

我是一个刚刚学习Ado.net的新手,今天在连接数据库的过程中出现了MessageBox.Show();报最匹配的重载方法具有一些无效参数。因为我是抄传智播客老师的代码,老师的不报错误,而我的确偏偏报...
  • fu77884100
  • fu77884100
  • 2015年08月22日 08:48
  • 1012

Linux X86 系统调用列表 system call table 32 bits and 64 bits

yuan # # 32-bit system call numbers and entry vectors # # The format is: # # # The abi is alwa...
  • benben2301
  • benben2301
  • 2014年09月11日 14:06
  • 2515

Java & Android 获取当前方法名

开发过程中经常需要获取当前正在执行的方法名,可以StackTrace信息来获取。使用Thread.currentThread().getStackTrace()返回StackTraceElement数...
  • lgz_ei
  • lgz_ei
  • 2017年03月25日 21:22
  • 825
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一些Android sys_call_table获取的方法
举报原因:
原因补充:

(最多只允许输入30个字)