挂钩到C功能

时间:2012-07-03 14:05:22

标签: iphone ios hook core-telephony

我想知道如何挂钩dylib中的函数,即C函数。 我的目标是挂钩CoreTelephony中的函数CTRegistrationSetCellularDataIsEnabled。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果你想要挂钩dylib函数,你将需要访问MobileSubtrate,这样做(从here挂钩一个名为CFShow()的函数):

 static void (*original_CFShow)(CFTypeRef obj);  // a function pointer to store the original CFShow().
 void replaced_CFShow(CFTypeRef obj) {         
  // our replacement of CFShow().
  printf("Calling original CFShow(%p)...", obj);
  original_CFShow(obj);                         // calls the original CFShow.
  printf(" done.\n");
}
// hook CFShow to our own implementation.
MSHookFunction(CFShow, replaced_CFShow, &original_CFShow);
// From now on any call to CFShow will pass through replaced_CFShow first.
CFShow(CFSTR("test"));

答案 1 :(得分:1)

您需要使用class dump从您需要使用的类中获取标题,然后调用此函数