如何阻止在iPhone越狱传入的短信+代码
问题描述:
我在搜索所以问这个问题之前,没有答案满足我的需要。如何阻止在iPhone越狱传入的短信+代码
所以这是我的要求,
我有这样的一段代码,用于检测传入的短信,但它并没有说如何转储这些消息。我已成功阻止来电,但对于消息我不确定如何执行此操作。任何帮助在这里将非常感激。
我确定使用任何私有API。
if ([notifyname isEqualToString:@"kCTSMSMessageReceivedNotification"])
{
if ([[(NSDictionary *)userInfo allKeys]
containsObject:@"kCTSMSMessage"]) // SMS Message
{
CTSMSMessage *message = (CTSMSMessage *)
[(NSDictionary *)userInfo objectForKey:@"kCTSMSMessage"];
NSString *address = CTSMSMessageCopyAddress(NULL, message);
NSString *text = CTSMSMessageCopyText(NULL, message);
//NSArray *lines = [text componentsSeparatedByString:@"\n"];
printf(" %s %s\n", [address UTF8String],[text UTF8String]);
//printf(" %s\n", [text cString]);
fflush(stdout);
}
}
else if ([notifyname isEqualToString:@"kCTMessageReceivedNotification"])//received SMS
{
/*
kCTMessageIdKey = "-2147483636″;
kCTMessageTypeKey = 1;
*/
NSDictionary *info = (NSDictionary *)userInfo;
CFNumberRef msgID = (CFNumberRef)[info objectForKey:@"kCTMessageIdKey"];
int result;
CFNumberGetValue((CFNumberRef)msgID, kCFNumberSInt32Type, &result);
/*
Class CTMessageCenter = NSClassFromString(@"CTMessageCenter");
id mc = [CTMessageCenter sharedMessageCenter];
id incMsg = [mc incomingMessageWithId: result];
int msgType = (int)[incMsg messageType];
if (msgType == 1) //experimentally detected number
{
id phonenumber = [incMsg sender];
NSString *senderNumber = (NSString *)[phonenumber canonicalFormat];
id incMsgPart = [[incMsg items] objectAtIndex:0];
NSData *smsData = [incMsgPart data];
NSString *smsText = [[NSString alloc] initWithData:smsData encoding:NSUTF8StringEncoding];
}
*/
}
感谢 纳文
答
你的问题不够清楚。你是否希望它们完全被丢弃,这样它们甚至不会进入消息应用程序(和数据库),或者你只是想让SpringBoard不通知用户传入消息?
对于第一个,您将不得不挂钩实际发送您在代码sniplet中收听的通知的进程。我很确定你必须修改imagent(/System/Library/PrivateFrameworks/IMCore.framework/imagent.app/imagent)。
对于第二个,你将不得不在SpringBoard中玩耍。由于iOS 5.0 BulletinBoard正在处理通知给用户,所以你可以在那里阻止它。 (你可能想看看SMSBBPlugin这是一个BulletinBoard插件)。
或者只是火了你选择的反汇编,看看怎么样biteSMS调整正在这样做;)
请记住,越狱的调整发展有时需要大量的扭转和修修补补的,大多数人会保持巨大的部分他们的发现本身。
嗨@YllierDev,我正在寻找第一个,对于选择的号码我想完全拒绝短信。你能否给我更多关于如何挂钩过程或任何解释相同的链接的信息。你是对的,他们大多数不会透露那里的调查结果:) – RVN 2012-04-28 07:42:46
我没有任何imagent的经验。您将不得不使用MobileSubstrate来覆盖方法或函数。 http://iphonedevwiki.net/index.php/MobileSubstrate 如果你不知道如何编写MobileSubstrate的调整,只需谷歌。那里有很多小教程。 这可能是最好的做你的第一步倾销标题。转储imagent的头文件和关联的私有框架。另外,你可能需要一些逆向知识。 – YllierDev 2012-04-28 14:46:03
谢谢,会尝试。 – RVN 2012-04-30 08:25:57