IOS越狱如何拦截短信/短信

标签 ios sms hook jailbreak intercept

我目前正在尝试编写一个应用程序来拦截文本消息并根据该消息的内容使用react。 我试图挂接到 CKSMSService 类中的 _receivedMessage:(struct __CKSMSRecord *)message replace:(BOOL)replace 方法,但这似乎根本没有被调用。

有人可以告诉我我必须挂接什么函数/类吗?我需要在文本消息显示并存储到数据库之前拦截它。我在 IOS 5.0.1 上。

非常感谢任何帮助。

最佳答案

此代码段应拦截 SMS 消息 - 您可以将其扩展为其他类型的通知。也适用于 iOS 5.0.1。虽然不适用于 iMessages。与 CoreTelephony 框架链接(那里有一堆私有(private) header ,您可以对其进行类转储)

#include <dlfcn.h>

#define CORETELPATH "/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony"
id(*CTTelephonyCenterGetDefault)();

void (*CTTelephonyCenterAddObserver) (id,id,CFNotificationCallback,NSString*,void*,int);


static void telephonyEventCallback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
    NSString *notifyname=(NSString *)name;
    if ([notifyname isEqualToString:@"kCTMessageReceivedNotification"])//received SMS
    {
        NSLog(@" SMS Notification Received :kCTMessageReceivedNotification");
        // Do blocking here. 
    }
}

-(void) registerCallback {

 void *handle = dlopen(CORETELPATH, RTLD_LAZY);
    CTTelephonyCenterGetDefault = dlsym(handle, "CTTelephonyCenterGetDefault");
    CTTelephonyCenterAddObserver = dlsym(handle,"CTTelephonyCenterAddObserver");
    dlclose(handle);
    id ct = CTTelephonyCenterGetDefault();

    CTTelephonyCenterAddObserver(
                                 ct, 
                                 NULL, 
                                 telephonyEventCallback,
                                 NULL,
                                 NULL,
                                 CFNotificationSuspensionBehaviorDeliverImmediately);
}

关于IOS越狱如何拦截短信/短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680764/

相关文章:

ios - 委托(delegate)成为噩梦的多层 subview Controller ——它们应该如何相互通信?

android - 自动从 Android 和 IOS 发送短信

c# - 检测外部进程的窗口是否闪烁

android - 尝试从特定发件人处获取短信

android - 在android中自动在后台发送短信

c++ - 如何获取类中成员函数的地址

windows - 为内存跟踪应用程序 Hook 调用 HeapAlloc 的僵局

ios - 设置 UITabBar 的高度

ios - 使用 Retina 显示屏将 Tile 转换为 CGPoint

ios - 从我的共享扩展 ShareViewController 显示一个 UIAlertController