兼职做问卷调查的网站,wordpress主题手机端,企业网站适合做成响应式吗,创保网所谓的短信截获#xff0c;可以被法度提前接管到#xff0c;经过过滤以及响应的处理惩罚#xff0c;然后发送到手机的收件箱中。 ios3上的短信截获经由过程可以经由过程一些私有的api即可完成#xff0c;网上的教程也较多#xff0c;这里不在反复。 前段时候在调研的ios4上…所谓的短信截获可以被法度提前接管到经过过滤以及响应的处理惩罚然后发送到手机的收件箱中。 ios3上的短信截获经由过程可以经由过程一些私有的api即可完成网上的教程也较多这里不在反复。 前段时候在调研的ios4上的短信截获在网上也很难找到响应的较完全的材料正好前段时候进修了hook 故周末抽了点时候应用hook从头调研了下这里做个记录以防止后期遗忘. 测试景象 iphone4 ios4.3.2 已逃狱 1. 搭建hook demo开辟景象可以参照我的另一篇文章这里不再反复。对接管短信的函数进行hook并进行响应处理惩罚与过滤在经由过程到手机上。 2. class-dump SMSCTServer.framework ChatKit.framework CoreTelephony.framework等framework 此中SMSCTServer.framework中首要包含一些短信发送与接管相干的Api ChatKit较错杂此中CKSMSService.h包含很多响应的操纵 例如markAllMessagesInConversationAsRead则是当第一次浏览短信时设置标记位为浏览状况。 CoreTelephony.framework已在ios4上方开放然则依然有很多的私有api没有被apple开放出来须要本身测试。 将上方三个库倒出来的头文件参加XCode的编译搜刮路径傍边当应用某个类的时辰就可以直接进行import此时当然会碰到一些编译错误 此时须要推敲相对路径与绝对路径对framework内部的一些import进行处理惩罚。不过益处在于只有你import某个头文件时才会去搜检这个 头文件内部的语法布局这就不须要去手动处理惩罚所有的framework中的头文件。 3. 景象都搭建好了接下来就须要去查询可能涉及到的函数并对其进行hook。 在这里我推荐应用号令grep进行查询例如查找sendMessage函数应用grep sendMessage . -r就可以列出所有的包含有这个单词的相干内容。 便于高效快速的去获取到须要的信息。 4. 经由过程第3步信赖会对一些函数的感化产生思疑这个函数到底是不是接管短信的api呢验证真谛最好的办法就是测试。对这些函数进行hook 并在此中加上一些打印便可以实验出这些函数的可能功能。 5. 最后得出当接管短信时因为framework中的函数浩繁我只是hook了项目组值得思疑的函数。 - void_processReceivedMessageWithInfo:struct __CFDictionary *arg1; - void_ingestIncomingCTMessage:idarg1; - void_receivedMessage:struct __CKSMSRecord *arg1 replace:BOOLarg2; 当短信到来时会至上而下的履行这些函数。在_ingestIncomingCTMessage可以对短信是否发送到手机长进行把握。若是在_processReceivedMessageWithInfo 函数中进行过滤的话短信在当前确切不会到来然则重启手机之后短信其实已经达到收件箱了只是没有收到通知罢了显然我们想要的不仅仅这么多。 hook的代码如下 extern C void replaced_SMSCTServer_ingestIncomingCTMessageSMSCTServer *self SEL cmd id arg1
{NSLog--------------------------------replaced_SMSCTServer_ingestIncomingCTMessage enter arg1 arg1;NSLogreplaced_SMSCTServer_ingestIncomingCTMessageNSStringFromClass[arg1 class] NSStringFromClass[arg1 class];CTMessage *message CTMessage *arg1;CTPhoneNumber *sender CTPhoneNumber *message.sender;NSString *digits sender.digits; // 德律风号码NSString *countryCode sender.countryCode;NSDate *date message.date;NSArray *items message.items;forCTMessagePart *part in items{NSData *data part.data;NSLogdata data;
// NSLogsmsData [CTMmsEncoder decodeMessageFromData:data];}NSLogcountryCode digits date countryCode digits date;NSLog-----------------------------message sender message sender;// 在此处可以进行短信的成功截获哄骗arg1包含的一些短信信息确认是否应当接管该信息if[1065583393 isEqualToString:digits]{NSLog---------------------------------------------不容许接管该德律风号码的短信.; // 对新短信的到来赐与提示UIAlertView *alertView [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:垃圾短信 digits] message:[NSString stringWithFormat:短信发送日期: date] delegate:self cancelButtonTitle:断定 otherButtonTitles:nil nil];[alertView show];[alertView release]; return;}original_SMSCTServer_ingestIncomingCTMessageself cmd arg1;
}这这个处所进行一些短信内容的解析工作如上1065583393这个号码进行骚扰我每隔一两天就给我发垃圾短信如此的话这个号码再也不会给我发送短信啦。这里的号码就相当于黑名单可以经由过程法度进行设置然后在这里获取响应的号码并进行过滤。 代码中的UIAlertView会对不筹算接管的垃圾短信的到来进行提示然则不会去接管。只是一个测试别太介怀 参数arg1是CTMessage类型的包含短信的发送号码日期内容等等信息。不过在我应用CTMmsEncoder去对短信内容进行解析时辰提示该类不存在然则哪个NSData应当就是短信内容的data对于每条短信的长短NSData的数据长短也不一致。 例如SMSCTServer 的playMessageSent会对发送短信成功的一些提示音进行把握 不授与返回的话短信发送出去也不会呈现声音 // 把握短信发送完成播放声音
extern C void replaced_SMSCTServer_playMessageSentSMSCTServer *self SEL cmd
{NSLog--------------------------------replaced_SMSCTServer_playMessageSent enter ;original_SMSCTServer_playMessageSentself cmd;
}hook确切可以完成很多强大的功能私有apiframeworkhook水够深呀 临时先做这些吧等有时候的时辰把每次收到短信那暴力的提示框给干掉世界平静了 http://www.byywee.com/page/M0/S612/612185.html转载于:https://www.cnblogs.com/ligun123/archive/2011/12/28/2304530.html