SMSNinja源码研究---短信监听

/var/mobile/Library/SMS 中sms.db存放了短信数据 未加密 可解读

通讯录存放位置不正确

为/var/mobile/Library/CallHistoryDB

8.4中  无Safari/Histroy.plist


http://www.cnblogs.com/OtionSky/archive/2011/11/10/iPhone_TelephoneCenter.html这篇博客详细讲述了IOS5、6上怎么样短信电话拦截

先感谢snankky的开源精神 分享了SMSNinja这个著名开源插件的源码 SMSNinja-master.zip

这个源码对于后续的关于短信来电的研发提供非常宝贵的材料

主要实现了 短信的监听 iMessage的监听 下面主要介绍实现过程以及踩过的坑

实现代码如下:

%group SNIncomingMessageHook_5_6_7_8

%hook IMDServiceSession

- (void)didReceiveMessage:(id)message forChat:(NSString *)arg2 style:(unsigned char)arg3 // incoming iMessage_5/message_6_7_8

{

%orig;

NSLog(@"message coming:");

message = (IMMessageItem *)message;

NSString *text = [[message body] string];

NSLog(@"%@",text);

}

%end

%end

%hook IMDaemon

- (void)_loadServices

{

%orig;

NSLog(@"zenmeyang:ffff");

%init(SNIncomingMessageHook_5_6_7_8);

}

%end

%ctor

{

%init

}

这里面关于logos的语法问题就不介绍了 总之也很头痛

对于IOS5,IOS6来说 添加CTTelephonyCenterAddObserver 的监控 是有效监听短信来电的有效方法 上面的那个博客说的很详细了

但是在IOS7,IOS8之后 苹果改变了这种机制

这两种系统中 IOS后台维护了一个后台进程 这个后台进程是:com.apple.imagent


这个不用白费心机的打印出来


打印结果如图


根本没有这个进程

原来苹果在编译阶段 并未加载这个进程 这个进程是在苹果实际运行的时候加载进去的 这样打印当然看不到

就是这个进程 主宰着IOS中SMS和iMessage的短信收发,这个进程从系统启动到结束 一直存在后台运行并始终有权限

所以很简单,无论你怎么对可疑函数进行hook,根本就没有用 因为这个函数是在 这个后台进程 称之为imagent进程 中加载的 你无法获取到这个imagent 就无法hook这个进程

在IOS7中 这个进程启动函数是:IMDamenCore这个私有框架里 IMDService类的- (void)loadServiceBundle 函数 即 只有在这个函数里加载可疑函数才有用 目标函数是:_processReceivedMessage

在IOS8中 这个进程的启动函数是:IMDaemon 这个我根本查不到它是哪个框架哪个类里的_loadServices是进程加载函数 目标函数是:- (void)didReceiveMessage:(id)message forChat:(NSString *)arg2 style:(unsigned char)arg3 只有在这个函数里面加载才有用

接下来的才是大坑,因为imagent这个进程仅仅在系统启动的时候才启动一次 所以每次更新完tweak后 必须要重新启动一次imagent这个进程 否则tweak根本不会生效 可以通过reboot来重启imagent进程

这里声明一下 重启reboot和重启spring board是两个事件 重启reboot则重启所有的service,而重启spring board则仅仅重启自己

相信也一定有办法重启imagent进程 而不用每次都重启reboot

结果如图


大功告成

theos中有个很大的bug 即是只要tweak中 不存在logos的基本的语法错误 不存在未知类的链接错误 就不会报错 就是说 假设我在tweak里面hook一个根本没有的类 根本没有的函数 theos也不会报错

诸如上述 在IOS9.3中 IMDaemonCore框架虽然有 但是属于私有框架 如果不对其进行添加,那么 didReceiveMessage 这个函数根本就不会被hook,因为这个函数这个类 根本就不能被识别

现在在IOS9.3中 添加PRIVATE_FRAMEWORKS 发现 IOS9.3的framework文件路径有误

经查阅发现 这个没有办法theos目前的私有框架引用 就是不支持IOS9.3

所以要把xcode降级到9.2

theos无法debug开发 是它最大的弊端,只好在里面不停的输出log了

比如

这里的abcd类里的 woke函数根本不存在

编译器也不报错

也许 这就是短信hook为什么不通的原因

但是 我可以很明确的缺点 在添加了 IMDaemonCore之后 确实存在着IMDServiceSession这个类 也确实存在这个函数 为什么SMSNijina能拿到log,能到这个函数 我却不能····

后来发现不少这个原因····

此为上述监听短信行为demo的编译文件

可以看到降级到9.2之后 可以成功添加私有框架

最后贴出监听发短信和打电话的行为代码

%hook UIApplication

-(BOOL)openURL:(id)arg1

{

%log;

BOOL returnValue = %orig;

NSString*actionName = @"";

NSString *actualString = [arg1 absoluteString];

if ([actualString hasPrefix:@"sms"]) actionName = @"发短信";

else if ([actualString hasPrefix:@"tel"]) actionName = @"打电话";

else actionName = @"木知";

NSProcessInfo *info = [NSProcessInfo processInfo];

NSLog(@"I konw what you are doing:\n行为:%@\n参数:%@\n进程名:%@\n进程编号:%d\napp bundle id:%@\n当前线程:%@\n当前时间:%@",actionName,arg1,info.processName,info.processIdentifier,[[NSBundle mainBundle]bundleIdentifier],[NSThread currentThread],[NSDate date]);

return returnValue;

}

%end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容