Objective c 如何检测它是否';在我的iOS调整中,背板中有什么?

Objective c 如何检测它是否';在我的iOS调整中,背板中有什么?,objective-c,jailbreak,iphone-privateapi,tweak,cydia-substrate,Objective C,Jailbreak,Iphone Privateapi,Tweak,Cydia Substrate,我想向Backboardd注入一些函数,由于某些原因,我不能使用plist来限制它,所以我想使用“if”来确定它是否在Backboardd内部。我知道在“logo”中我可以这样使用: %ctor{ if (%c(SpringBoard)) { } } %执行器{ 如果(%c(跳板)){ } } 但是如果没有徽标,我可以像下面这样做吗?它不起作用 MSInitialize { if (objc_getClass("Backboardd")) { CFMess

我想向Backboardd注入一些函数,由于某些原因,我不能使用plist来限制它,所以我想使用“if”来确定它是否在Backboardd内部。我知道在“logo”中我可以这样使用:

%ctor{ if (%c(SpringBoard)) { } } %执行器{ 如果(%c(跳板)){ } } 但是如果没有徽标,我可以像下面这样做吗?它不起作用

MSInitialize { if (objc_getClass("Backboardd")) { CFMessagePortRef local = CFMessagePortCreateLocal(NULL, CFSTR(MACH_PORT_NAME), messageCallBack, NULL, NULL); CFRunLoopSourceRef source = CFMessagePortCreateRunLoopSource(NULL, local, 0); CFRunLoopAddSource(CFRunLoopGetCurrent(), source, kCFRunLoopDefaultMode); } } 初始化{ if(objc_getClass(“Backboardd”)){ CFMessagePortRef local=CFMessagePortCreateLocal(NULL,CFSTR(MACH\u PORT\u NAME),messageCallBack,NULL,NULL); CFRunLoopSourceRef source=CFMessagePortCreateRunLoopSource(NULL,本地,0); CFRunLoopAddSource(CFRunLoopGetCurrent(),source,kCFRunLoopDefaultMode); } }
一般来说,您需要找到某个obj-c类,该类对于您正在钩住的对象是唯一的。理想情况下,它应该是在二进制文件中定义的类,而不是从框架中导入。例如,在SpringBoard中有一个
SpringBoard
类,它只能在SpringBoard的二进制文件中找到。如果
objc\u getClass(“跳板”)
返回非空值,那么您就在跳板内部

现在,篮板。在这种情况下,我要做的是在我的PC上复制二进制文件,并使用类转储或IDA获取二进制文件中所有类的列表。在backboardd的情况下,好的候选者应该是
BKApplication
。所以

if (objc_getClass("BKApplication")) {
    ...
}
我会做的。Backboardd中没有
Backboardd


为了将来,对这样的问题使用更流行的标签。如果您使用
jailbreak
iphoneprivateapi
标签,您就有更好的机会得到答案。

一般来说,您需要找到一些与您所挂的内容独特的obj-c类。理想情况下,它应该是在二进制文件中定义的类,而不是从框架中导入。例如,在SpringBoard中有一个
SpringBoard
类,它只能在SpringBoard的二进制文件中找到。如果
objc\u getClass(“跳板”)
返回非空值,那么您就在跳板内部

现在,篮板。在这种情况下,我要做的是在我的PC上复制二进制文件,并使用类转储或IDA获取二进制文件中所有类的列表。在backboardd的情况下,好的候选者应该是
BKApplication
。所以

if (objc_getClass("BKApplication")) {
    ...
}
我会做的。Backboardd中没有
Backboardd


为了将来,对这样的问题使用更流行的标签。如果您使用
jailbreak
iphoneprivateapi
标签,您就有更好的机会得到答案。

一般来说,您需要找到一些与您所挂的内容独特的obj-c类。理想情况下,它应该是在二进制文件中定义的类,而不是从框架中导入。例如,在SpringBoard中有一个
SpringBoard
类,它只能在SpringBoard的二进制文件中找到。如果
objc\u getClass(“跳板”)
返回非空值,那么您就在跳板内部

现在,篮板。在这种情况下,我要做的是在我的PC上复制二进制文件,并使用类转储或IDA获取二进制文件中所有类的列表。在backboardd的情况下,好的候选者应该是
BKApplication
。所以

if (objc_getClass("BKApplication")) {
    ...
}
我会做的。Backboardd中没有
Backboardd


为了将来,对这样的问题使用更流行的标签。如果您使用
jailbreak
iphoneprivateapi
标签,您就有更好的机会得到答案。

一般来说,您需要找到一些与您所挂的内容独特的obj-c类。理想情况下,它应该是在二进制文件中定义的类,而不是从框架中导入。例如,在SpringBoard中有一个
SpringBoard
类,它只能在SpringBoard的二进制文件中找到。如果
objc\u getClass(“跳板”)
返回非空值,那么您就在跳板内部

现在,篮板。在这种情况下,我要做的是在我的PC上复制二进制文件,并使用类转储或IDA获取二进制文件中所有类的列表。在backboardd的情况下,好的候选者应该是
BKApplication
。所以

if (objc_getClass("BKApplication")) {
    ...
}
我会做的。Backboardd中没有
Backboardd


为了将来,对这样的问题使用更流行的标签。如果您使用
jailbreak
iphone privateapi
标签,您将有更好的机会获得答案。

非常感谢您的回答,这非常有帮助,非常感谢您的解释和建议。非常感谢您的回答,这非常有帮助,非常感谢您的解释和建议。非常感谢您的回答,这非常有帮助,非常感谢您的解释和建议。非常感谢您的回答,这非常有帮助,非常感谢您的解释和建议。