文件名称:HelloJni.tar
- 所属分类:
- Linux驱动
- 资源属性:
- [Linux] [C/C++] [源码]
- 上传时间:
- 2014-03-13
- 文件大小:
- 357kb
- 下载次数:
- 0次
- 提 供 者:
- kongli******
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
1、每个被加载的模块,无论是可执行程序还是共享库,均有自己独立的PLT和GOT表。所以拦截这个模块的对外调用的GOT,不影响其他模块。
2、本文只实现了拦截模块的调出到其他模块的动作,其他模块的调入没有涉及到(可能还涉及到比较复杂的重定位操作)。
3、system_server是system用户,不是有权限写所有名字的Property,这里用了persist.sys.开头的属性名,而persist.sys.开头的属性会保存至磁盘,因此性能会差点儿。
4、ioctl虽然实质声明是个可变参数:int new_ioctl (int __fd, unsigned long int __request, /*void * arg*/ ...),这种声明的函数要直接透明地将参数从旧函数传递给新函数似乎还不可行,搜了很多资料也没找到。幸好搜了一把libbinder.so源码,里头对ioctl的调用参数均是仨,干脆就不处理变长形式了。
5、如果不以root身份运行注入程序,则ptrace附加时会失败。
6、Andriod系统的大部分Service都运行在system_server进程中,可以拦截到。但部分自定义的用户Service在用户进程中,如需要拦截,则要ptrace到那个用户进程才行,拦截方法也类似。-so inject
2、本文只实现了拦截模块的调出到其他模块的动作,其他模块的调入没有涉及到(可能还涉及到比较复杂的重定位操作)。
3、system_server是system用户,不是有权限写所有名字的Property,这里用了persist.sys.开头的属性名,而persist.sys.开头的属性会保存至磁盘,因此性能会差点儿。
4、ioctl虽然实质声明是个可变参数:int new_ioctl (int __fd, unsigned long int __request, /*void * arg*/ ...),这种声明的函数要直接透明地将参数从旧函数传递给新函数似乎还不可行,搜了很多资料也没找到。幸好搜了一把libbinder.so源码,里头对ioctl的调用参数均是仨,干脆就不处理变长形式了。
5、如果不以root身份运行注入程序,则ptrace附加时会失败。
6、Andriod系统的大部分Service都运行在system_server进程中,可以拦截到。但部分自定义的用户Service在用户进程中,如需要拦截,则要ptrace到那个用户进程才行,拦截方法也类似。-so inject
(系统自动生成,下载前可以参看下载内容)
下载文件列表
19854795HelloJni.tar