首页
社区
课程
招聘
[求助]关于jni inject后 init_array反复执行的困惑
2016-10-12 03:20 4659

[求助]关于jni inject后 init_array反复执行的困惑

2016-10-12 03:20
4659
我用硬编码的方式 修改了libc.so的init_array表 在初始化时 dlopen了我的so文件 libckis.so

为代码如下:
jmp in...
dlopen("libckis.so",0);
jmp out...


我的libckis.so的大概内容如下

static int n=0;
static bool hooked=false;

void init(void) __attribute__((constructor));

void init(void)
{
    if(hooked) return;
    hooked=true;
    n++;
    printf("libckis.so loaded! by %s pid :%d  loop: %d addr:%X loop_addr:%X\n",AppName,getpid(),n,(uint32_t)my_init,&n);
}


以下是加载后的结果


也就是说 void init()被反复执行了
之前我在小米3上执行是没有问题的 但是到了小米3就变成这样了 求解

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 241
活跃值: (226)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ckis 2016-10-12 03:22
2
0
也就是说 每次加载的pid都是2620这个进程 进程反复的调用了libc.so触发了init_array后 被动的调用了libckis.so  连带libckis.so的init()也被反复执行 这是为什么?求原理

已经解决了 说出来可笑 自己犯二就不解释了...
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_望涯 2018-4-10 01:11
3
0
我照着楼主的写,也遇到了楼主的问题,新手求解
雪    币: 4
活跃值: (282)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
程IT龙 2018-4-12 18:00
4
0
lz自己hook  了  libc.so  。。。然后里面去调用  libckis.so  了吧?
游客
登录 | 注册 方可回帖
返回