Closed calssion closed 4 years ago
好的感谢,用的是里面的example,我先摸索一下源码,如果能有这部分的实现原理就更好了
好的感谢,用的是里面的example,我先摸索一下源码,如果能有这部分的实现原理就更好了
错误出现在rebase_stub,*entry->trampoline_target_stub = entry->relocated_origin_function;出现Exec Bad Access
估计是访问到了空指针,这部分rebase出错
调用方式:ZzReplaceStatic("MachOStaitcPatcherExample", 0x100006ad8, runReplace, runMainFunction);
不知这样做是否是正确调用呢?0x100006ad8为nm获取到的函数地址,与hopper虚地址一致
好的感谢,用的是里面的example,我先摸索一下源码,如果能有这部分的实现原理就更好了
错误出现在rebase_stub,*entry->trampoline_target_stub = entry->relocated_origin_function;出现Exec Bad Access
估计是访问到了空指针,这部分rebase出错
调用方式:ZzReplaceStatic("MachOStaitcPatcherExample", 0x100006ad8, runReplace, runMainFunction);
不知这样做是否是正确调用呢?0x100006ad8为nm获取到的函数地址,与hopper虚地址一致
大家遇到相同的情况,可以暂时这样处理:注视掉下面这句代码,不懂这句的作用,估计是想用来回调原函数,但hook是成功的
origin_call = (void )entry->relocated_origin_function;
主要原因是指针越界了,待读懂大佬的代码后,再看看要如何使用吧
以下提供正确的使用方式:
ZzReplaceStatic(char image_name, void function_virtual_address, void *replace_call, void **origin_call)
ZzReplaceStatic("image名称,可用dyld函数查看", 需要hook的函数的虚存地址, 替换的函数的函数指针, 这个参数是获取回调原函数的指针[所以可以自己创建个指针传参])
经过了几天的时间,本小白才勉强看懂了作者的代码,代码真的是非常地强,赞叹!
还没搞懂怎么使用MachOStaticPatcher?里面的README.md是这样的:
但实际上在文件里找到的函数是这样的:
README.md是不是应该更新一下使用方式了,求助大佬,在arm64直接crash了,怀疑是我的使用方式有问题。