确实是不同进程,前面忘记说了。class1属于SpringBoard,class2属于一个用户程序,这样的情况下,有办法让这两个HOOK交互吗?主要是第一个hook根据第二个hook里的判断做出相应。
THEOS,目前新手,正向逆向一起学。
如果是THEOS的话 先配置 Makefile
然后就是OC了 自己生成你要的类
比如我 存放数据 的类是Tweak_Data
直接在Tweak.xm 里面调用 #import “Tweak_Data.h”
至于 Tweak_Data.h 静态实例 是oc了 你自己写了
有ipc机制。。不是你这么简单的。不过跨进程通讯比较复杂,最简单的方式是直接写到plist让另一个读取
我这个是Hook 同一个进程 不适合你这两个进程的
这样的话是不是效率会很低?不会及时相应?
理论上可以自己监测文件系统变化。gcd可以这么干
dispatch_source_t src=dispatch_source_create(
DISPATCH_SOURCE_TYPE_VNODE, 这里是文件的file descriptor, DISPATCH_VNODE_WRITE,
dispatch_queue_create(
随便编个名字,
0));
dispatch_source_set_event_handler(src, ^() {
// 在这里重新加载你的配置
});
// close the file descriptor when the dispatch source is
// cancelled
dispatch_source_set_cancel_handler(src, ^{
close(self->FolderFD);
});
大致就这样
这样是不是得频繁的读写硬盘?因为class2里的变化是比较频繁的。
最合适的么还是直接走IPC,但这玩意比较复杂。研究一下RocketBootstrap之类的吧
好的谢谢,不想有个依赖组件,好像是没别的办法了,最后只能改设计思路了走别的实现方法了。谢谢,有问题再像您请教。
请教下大佬,我用hopper去看一下别人写的插件,有些能看到类和函数,有些只能看到类,看不到函数,后者是怎么做到的呢?
哈?啥玩意?
就是用hopper去打开别人写的dylib的插件呀。
就是反编译时能看到类似这样的,_logos_method$Gesture$SBCoverSheetPrimarySlidingViewController$_handleDismissGesture$(SBCoverSheetPrimarySlidingViewController*, objc_selector*, objc_object*),怎么把HOOK了哪些函数隐藏起来呢?用了debug=0,上面的语句是看不到了,还是能在hopper的stiring选项卡中看到具体函数。
这是截图,就是在这里能看到http://gwjyhs.com/t6/702/1556696764x2890173753.png
这是selector
什么意思? 我是新手,能说的详细点吗?
就是你需要先学习OC基础知识, OC HOOK基本原理
https://amywushu.github.io/2017/03/07/逆向知识-Hook-原理之-CydiaSubstrate(一):MSHookMessageEx.html