x10510 发表于 2015-7-6 11:17:16

Cydia Substrate hook 问题 小菜求帮助

本帖最后由 x10510 于 2015-7-6 12:25 编辑

按照网上实例来

第一个测试apk com.example.test:
void hook_hello(int i,int j ) {
      LOGD("Hook%d\n", i+j);
}

==================
第二个hook apk
void (* old_hook_hello)(int,int);

void new_hook_hello(int x,int y){
      LOGD("hookadd %d %d ",x,y);
}


void hook()
{

    MSImageRef image = MSGetImageByName("/data/data/com.example.test/lib//libTEST.so");
    if (image != NULL)
    {
      void * symbole = MSFindSymbol(image,"hook_hello");
      if (symbole == NULL){
            LOGD("error find1");
      }else{
            MSHookFunction(symbole, (void*)&new_hook_hello,(void **) &old_hook_hello);
            LOGD("hookok");
      }
    }else{
      LOGD("error find2");
    }
}
}

打印出来是LOGD("error find2 "); 没取到;
=========================
我又试了下
      void *handle=dlopen("/data/data/com.example.test/lib/libTEST.so", RTLD_LAZY);
          void *ex_test_org = dlsym(handle, "hook_hello");
          LOGD("%p",ex_test_org);//能打印出地址
    MSHookFunction(ex_test_org, (void*)&new_hook_hello, (void**)&old_hook_hello);


但是到com.example.test 调用hook_hello函数没有执行new_hook_hello,求帮助




TextXss 发表于 2015-7-10 19:24:58

cydia 注入了 davilk,你这种写法只能注入导出的函数..
未导的函数出的需要另外注入.

x10510 发表于 2015-7-10 23:30:39

本帖最后由 x10510 于 2015-7-10 23:32 编辑

TextXss 发表于 2015-7-10 19:24
cydia 注入了 davilk,你这种写法只能注入导出的函数..
未导的函数出的需要另外注入. ...
谢谢回复,我这个好像就是导出的函数啊。另外的注入是怎么样的呢?大神,球个例子或者资料谢谢{:4_95:}
页: [1]
查看完整版本: Cydia Substrate hook 问题 小菜求帮助