-
-
[求助]关于jni inject后 init_array反复执行的困惑
-
发表于:
2016-10-12 03:20
5155
-
[求助]关于jni inject后 init_array反复执行的困惑
我用硬编码的方式 修改了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就变成这样了 求解
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!