@sdhzdmzzl wrote:
大家好,我使用了mach_override的框架试图在mac下hook剪切板的CFPasteboardCopydata函数。 hook之后,可以打印hook函数日志,但在hook函数里调用原函数时出现错误,报错信息为EXC_BAD_ACCESS。如下: _dyld_lookup_and_bind( "_CFPasteboardCopyData", (void**) &victim_func_ptr_copydata, NULL); victim_func_copydata = (int32_t (*)(int, int, int, int, int ))victim_func_ptr_copydata me = mach_override_ptr( victim_func_ptr_copydata, (void*)&my_CFPasteboardCopydata, (void**)&victim_func_copydata);
然后调用上层剪切板函数后,会执行到
int32_t my_CFPasteboardCopydata(int argv0, int argv1, int argv2, int argv3, int argv4)
{
printf(“in my_CFPasteboardCopydata %llx\n”, victim_func_copydata);
int i = (*victim_func_copydata)(argv0, argv1, argv2, argv3, argv4); //该函数报错return i;
}
具体代码我已经上传到https://github.com/sdhzdmzzl/pastehook/blob/master,下载下来即可使用xcode编译调试。我是在10.12环境下调试的。
使用mach_override框架hook open等系统函数没有问题,但是hook cfpasteboardcopydata却出现问题,麻烦哪位大佬帮忙看看,万分感谢。注:使用hooper反汇编CoreFoundation文件,拿到的CFPasteboardCopydata函数原型为int _CFPasteboardCopydata(int argv0, int argv1, int argv2, int argv3, int argv4)
Posts: 1
Participants: 1