我想在iOS上拦截文件读/写,以便为我的某些应用程序提供透明的加密/解密功能。
我知道我可以使用各种SDK方法来读取/写入文件来执行此操作,但这需要大量的艰苦工作并且容易出错(我可能会错过某些方法,导致我的应用程序崩溃/行为不端)。
如果所有这些方法都使用一些常见的系统调用/函数,那么我宁愿滑动它并节省一些辛勤工作+使其更加万无一失。有没有这样的共同切入点?
PS:接受进入应用商店不是这里的标准,因为所有这些应用程序都是用于内部企业部署的。
谢谢!
,您需要一个越狱设备。
有POSIX系统调用read
和write
可以被劫持(这是如何 - 不是特定于iOS的,但无论如何都是达尔文......
您还可以使用 MobileSubstrate(http://iphonedevwiki.net/index.php/MobileSubstrate) 挂接 C 标准库中的 read() 和 write() 函数,该函数库几乎专门用于实现许多基本框架和方法(包括 CocoaTouch - Foundation、CoreFoundation,实际上还有一些 C 和 C++ 标准库等) - 所以很可能你不需要直接更改系统调用。例:
static size_t (*orig_write)(int fd, void *buf, size_t n);
size_t hijacked_write(int fd, void *buf, size_t n)
{
// do something, then
return orig_write(fd, buf, n);
}
// in some initialization:
MSHookFunction(write, hijacked_write, (void **)&original_write);