如何阻止在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调整正在这样做;)

请记住,越狱的调整发展有时需要大量的扭转和修修补补的,大多数人会保持巨大的部分他们的发现本身。

+0

嗨@YllierDev,我正在寻找第一个,对于选择的号码我想完全拒绝短信。你能否给我更多关于如何挂钩过程或任何解释相同的链接的信息。你是对的,他们大多数不会透露那里的调查结果:) – RVN 2012-04-28 07:42:46

+0

我没有任何imagent的经验。您将不得不使用MobileSubstrate来覆盖方法或函数。 http://iphonedevwiki.net/index.php/MobileSubstrate 如果你不知道如何编写MobileSubstrate的调整,只需谷歌。那里有很多小教程。 这可能是最好的做你的第一步倾销标题。转储imagent的头文件和关联的私有框架。另外,你可能需要一些逆向知识。 – YllierDev 2012-04-28 14:46:03

+0

谢谢,会尝试。 – RVN 2012-04-30 08:25:57