求教theos中的变量问题

确实是不同进程,前面忘记说了。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 同一个进程 不适合你这两个进程的

您说的 是不是 和我说的 插件开发问题(Preferences) 这个有点类似

这样的话是不是效率会很低?不会及时相应?

理论上可以自己监测文件系统变化。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