首页
社区
课程
招聘
一种简单的Android全局注入方案
发表于: 2018-1-19 21:54 28163

一种简单的Android全局注入方案

2018-1-19 21:54
28163

    Xposed和Cydia Substrate是android上两款比较知名的全局Hook框架,但都不尽善尽美,有时为了实现某个功能往往要绕许多弯路去配合框架,结果也差强人意,与其浪费精力去熟悉框架不如自己实现一套框架。
    既然Xposed可以通过修改app_process源码实现全局注入,那自然我们也可通过修改app_process的ELF结构达成相同目的,简单观察发现app_process普遍存在一个DT_DEBUG项,这显然不是必须的,如果我们将其改成DT_NEEDED不就可以完成注入了?答案是肯定的。


   
class static_initializer
{
public:
    static_initializer() {
        LOGI(__FUNCTION__);

        void *p = dlsym(RTLD_DEFAULT, "JNI_CreateJavaVM");
        LOGI("JNI_CreateJavaVM = %p", p);

        if (p != NULL) {
            AKHookFunction(p, __func_cast(JNI_CreateJavaVM_Impl), reinterpret_cast<void **>(&JNI_CreateJavaVM));
        } //if
    }
};
static static_initializer s;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (45)
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
AndHook大牛,Orz...
2018-1-19 23:31
0
雪    币: 62
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了!!!
2018-1-20 00:58
0
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
前排...
2018-1-20 02:40
0
雪    币: 23
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
新思路  厉害  可以  666  只要兼容性好可以自动化配置能通用才好
2018-1-20 07:41
0
雪    币: 1253
活跃值: (2163)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
6
赞一个
2018-1-20 09:37
0
雪    币: 241
活跃值: (231)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
666  老铁没毛病
确实是个好的思路
2018-1-20 11:35
0
雪    币: 562
活跃值: (4347)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
2018-1-20 11:48
0
雪    币: 416
活跃值: (509)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
厉害
2018-1-20 12:10
0
雪    币: 2714
活跃值: (1611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
等于  你强制修改了系统的调用逻辑,  封装的是AndHook  ?
2018-1-20 15:34
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
hhhaiai 等于 你强制修改了系统的调用逻辑, 封装的是AndHook ?
怎么说呢,  菜是这么做的,  用什么灶具就是因人而异了
2018-1-20 17:01
0
雪    币: 7006
活跃值: (4217)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
新姿势
2018-1-20 19:32
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
2018-1-20 23:31
0
雪    币: 152
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
新人学习一下……
2018-1-22 21:34
0
雪    币: 2714
活跃值: (1611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
rrrfff 怎么说呢, 菜是这么做的, 用什么灶具就是因人而异了
嗯  讲的很棒。。谢谢分享
2018-1-22 21:49
0
雪    币: 573
活跃值: (1009)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16

 

找到了,思路不错。

2018-1-23 09:27
0
雪    币: 163
活跃值: (509)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
全局注入的思路  真的是各种骚操作
2018-1-23 16:14
1
雪    币: 2308
活跃值: (2200)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
18
学习了,不错~
2018-1-24 13:04
0
雪    币: 94
活跃值: (2392)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
学习学习。。。
2018-1-24 17:18
0
雪    币: 322
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
mark
2018-1-25 21:41
0
雪    币: 1449
活跃值: (128)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
给份源代码吧  大神
2018-1-26 16:29
0
雪    币: 102
活跃值: (94)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
nice
2018-1-26 19:04
0
雪    币: 268
活跃值: (3233)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
需要编写一个so并放到/system/lib/android_runtime.so,注意此时JNI_OnLoad是不会被加载的。。..这个是什么意思说明下。。把so放到android_runtime.so怎么放
2018-2-1 13:43
0
雪    币: 76
活跃值: (41)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
感谢大牛分享技术贴
2018-2-1 16:40
0
雪    币: 187
活跃值: (70)
能力值: ( LV5,RANK:155 )
在线值:
发帖
回帖
粉丝
25
gtict 需要编写一个so并放到/system/lib/android_runtime.so,注意此时JNI_OnLoad是不会被加载的。。..这个是什么意思说明下。。把so放到android_runtime. ...
@gtict  意思是android_runtime里面的hook代码放到android_runtime.so的initarray中。因为so被加载的时候会依次执行initarray的函数,是先于JNI_OnLoad执行胡
2018-2-2 16:38
0
游客
登录 | 注册 方可回帖
返回
//