首页
社区
课程
招聘
[求助]HOOK/inject android init进程方法
发表于: 2016-4-8 17:40 5652

[求助]HOOK/inject android init进程方法

2016-4-8 17:40
5652
现在手里有这么一个需求,在不能修改源码 替换系统文件的情况下:
需要注入到 init 进程中,去修改内存数据;

现有掌握的知识以及遇到的问题:

1、
方法:ptrace 注入远程加载一个so ,
遇到的问题: init 是静态方式编译,无法 ptrace 后 mmap 开辟内存 写加载代码;

2、
方法:查找GOT表 遍历数据的头指针
遇到的问题:遍历出来了 又能怎么样,ptrace 操作不连续的数据有些麻烦



那么问题来了, 其他同学可有好招来解决这个需求?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
换句话说难道 静态编译的进程 无法常规注入?

持续研究中.....
2016-4-11 10:52
0
雪    币: 2
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
adbi,  libinject, libinject2 皆走向了问题 1的道路;
额 继续....
2016-4-11 13:40
0
雪    币: 463
活跃值: (283)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
1.解决mmap问题。
  使用svc调用。
  ldr     r7, =__NR_mmap2
  swi     #0
  把shellcode 写到init进程中执行。获得r0。申请的内存存放后面linker代码。

2.dlopen的问题。
   自己加载一份linker。然后拷贝到上面shellcode申请内存的里面。获得此linker的dlopen的地址,用此dlopen注入so。

过程应该有点复杂。但可以实现。
2016-4-13 15:21
0
雪    币: 2
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
思路不错 thanks!
2016-6-4 09:53
0
游客
登录 | 注册 方可回帖
返回