- 浏览: 258835 次
- 性别:
- 来自: 深圳
最新评论
-
whizkid:
[img] private void enableNdefEx ...
android通过NFC读写数据 -
zhangminglife:
您好!不错,最近正在弄这个东西,能否把demo发给我一份谢谢了 ...
SSL双向认证java实现(转) -
water卡:
android如何调用显示和隐藏系统默认的输入法 -
water卡:
android如何调用显示和隐藏系统默认的输入法 -
sjp524617477:
good
生成android使用的BKS证书
短信发送和截获
方式一:
打 开/dev/tty.debug使用AT命令操作,这类代码最早的出现在一些开源项目中,改改基本能用,现有的版本用的就是这种方式。
缺 点:机器必须破解并必须安装到 /Application ,IPA安装方式无法使用,应该是权限的问题。
不太稳定,速度有点慢,也可能是我代码写的有问题,这类代码code.google.com上可以找到,就不贴出来丢人了;
方式二:
直 接使用apple的私有库来(CoreTelephony)操作,其实有人已经弄出来了(别问我是谁啊,我不知道反你们的软件是不是非法啊),可是你别指 望在网上找到任何资料,我用ida看了2天还是没有弄出来,反而3.0的sdk拿到手立马搞定了3.0的短信发送。
缺点:唯一的缺点就是 你不知道什么时候apple又修改了api,私有的api不需要对你承诺兼容性,还有一个缺点就是appstore的签名可能会有麻烦;
1.x、 2.x、3.x的iphone应该都能支持的方式,随便定义个头文件,把下面的copy进去,同时主要加入CoreTelephony framework
extern NSString* const kCTSMSMessageReceivedNotification;
extern NSString* const kCTSMSMessageReplaceReceivedNotification;
extern NSString* const kCTSIMSupportSIMStatusNotInserted;
extern NSString* const kCTSIMSupportSIMStatusReady;
id CTTelephonyCenterGetDefault(void);
void CTTelephonyCenterAddObserver(id,id,CFNotificationCallback,NSString*,void*,int);
void CTTelephonyCenterRemoveObserver(id,id,NSString*,void*);
int CTSMSMessageGetUnreadCount(void);
int CTSMSMessageGetRecordIdentifier(void * msg);
NSString * CTSIMSupportGetSIMStatus(); //获取sim卡状态,kCTSIMSupportSIMStatusNotInserted表示没有sim卡
NSString * CTSIMSupportCopyMobileSubscriberIdentity(); //获取imsi号码,泪牛满面啊,我原来都是用AT+CCID来获取的iccid识别用户
id CTSMSMessageCreate(void* unknow/*always 0*/,NSString* number,NSString* text);
void * CTSMSMessageCreateReply(void* unknow/*always 0*/,void * forwardTo,NSString* text);
void* CTSMSMessageSend(id server,id msg);
NSString *CTSMSMessageCopyAddress(void *, void *);
NSString *CTSMSMessageCopyText(void *, void *);
/*还有很多API,比如说挂机的啊,拨号的啊,获取 iccid,imsi,cell id,bootload/fireware版本的啊,暂时用不上,就没有一一弄出来哦*/
获取IMSI 号码:
NSString * imsi= CTSIMSupportCopyMobileSubscriberIdentity(/*nil*/);
获取SIM卡状态:
NSString * simStatus= CTSIMSupportGetSIMStatus();
截获短信(3.0暂时已经失效):
void SmsCallBack (
CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo
)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (!userInfo) return;
if ([[(NSDictionary *)userInfo allKeys]
containsObject:@"kCTSMSMessage"]) // SMS Message
{
void *message = (void *)
[(NSDictionary *)userInfo objectForKey:@"kCTSMSMessage"];
NSString *address = CTSMSMessageCopyAddress(NULL, message);
NSString *text = CTSMSMessageCopyText(NULL, message);
NSLog(@"address = %@,text =%@",address,text );
}
}
[pool release];
}
id server = CTTelephonyCenterGetDefault();
CTTelephonyCenterAddObserver(server, self, smsCallBack,kCTSMSMessageReceivedNotification,NULL,4);
发送的代 码应该是(难道我弄错了么?为什么发送不成功):
id server = CTTelephonyCenterGetDefault();
id msg = CTSMSMessageCreate(0,@"10086",@"fuck");
id result=CTSMSMessageSend(server,msg);
apple在iphone 3.0在短信方面做了很大程度的修改,同时也让我看到了他们开放sms方面sdk的打算,现在有了一个ChatKit,ClassDump下来貌似很复 杂,我还是ClassDump了一下他的CoreTelephony,惊喜的发现里面多了很多obj c的class,修改了一下大致是下面这个样子,也是随便找个头Copy进去就可以用:
@interface CTMessageCenter : NSObject
{
}
+ (id)sharedMessageCenter;
- (id)init;
- (id)sendSMS:(id)fp8;
- (id)sendMMSFromData:(id)fp8 messageId:(unsigned int)fp12;
- (id)sendMMS:(id)fp8;
- (id)send:(id)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8 telephonyCenter:( id)fp12 isDeferred:(BOOL)fp16;
- (int)incomingMessageCount;
- (id)allIncomingMessages;
- (void)acknowledgeIncomingMessageWithId:(unsigned int)fp8;
- (void)acknowledgeOutgoingMessageWithId:(unsigned int)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8;
- (id)deferredMessageWithId:(unsigned int)fp8;
- (id)statusOfOutgoingMessages;
- (id)encodeMessage:(id)fp8;
- (id)decodeMessage:(id)fp8;
- (BOOL)isMmsEnabled;
- (BOOL)isMmsConfigured;
- (BOOL)sendSMSWithText:(id)fp8 serviceCenter:(id)fp12 toAddress:(id)fp16;
@end
从接口上来看,发送, 截获应该都可以搞定,还能支持彩信
发送很简单:
[ [CTMessageCenter sharedMessageCenter] sendSMSWithText:@"1111" serviceCenter:nil toAddress:@"138XXXX0610"];
截获很诡异的,我不知道他是怎么通知的,看里面的代码应该最终还是用了 CTTelephonyCenterAddObserver,我在想从这个类派生一个能不能截获呢?有待测试。
顺带提一下,ida反出来 的arm代码还是很郁闷啊,关键是没办法跟踪调试,CTSMSMessageSend肯定是可以发送的,而且就是2参数,神啊,help me?!
方式一:
打 开/dev/tty.debug使用AT命令操作,这类代码最早的出现在一些开源项目中,改改基本能用,现有的版本用的就是这种方式。
缺 点:机器必须破解并必须安装到 /Application ,IPA安装方式无法使用,应该是权限的问题。
不太稳定,速度有点慢,也可能是我代码写的有问题,这类代码code.google.com上可以找到,就不贴出来丢人了;
方式二:
直 接使用apple的私有库来(CoreTelephony)操作,其实有人已经弄出来了(别问我是谁啊,我不知道反你们的软件是不是非法啊),可是你别指 望在网上找到任何资料,我用ida看了2天还是没有弄出来,反而3.0的sdk拿到手立马搞定了3.0的短信发送。
缺点:唯一的缺点就是 你不知道什么时候apple又修改了api,私有的api不需要对你承诺兼容性,还有一个缺点就是appstore的签名可能会有麻烦;
1.x、 2.x、3.x的iphone应该都能支持的方式,随便定义个头文件,把下面的copy进去,同时主要加入CoreTelephony framework
extern NSString* const kCTSMSMessageReceivedNotification;
extern NSString* const kCTSMSMessageReplaceReceivedNotification;
extern NSString* const kCTSIMSupportSIMStatusNotInserted;
extern NSString* const kCTSIMSupportSIMStatusReady;
id CTTelephonyCenterGetDefault(void);
void CTTelephonyCenterAddObserver(id,id,CFNotificationCallback,NSString*,void*,int);
void CTTelephonyCenterRemoveObserver(id,id,NSString*,void*);
int CTSMSMessageGetUnreadCount(void);
int CTSMSMessageGetRecordIdentifier(void * msg);
NSString * CTSIMSupportGetSIMStatus(); //获取sim卡状态,kCTSIMSupportSIMStatusNotInserted表示没有sim卡
NSString * CTSIMSupportCopyMobileSubscriberIdentity(); //获取imsi号码,泪牛满面啊,我原来都是用AT+CCID来获取的iccid识别用户
id CTSMSMessageCreate(void* unknow/*always 0*/,NSString* number,NSString* text);
void * CTSMSMessageCreateReply(void* unknow/*always 0*/,void * forwardTo,NSString* text);
void* CTSMSMessageSend(id server,id msg);
NSString *CTSMSMessageCopyAddress(void *, void *);
NSString *CTSMSMessageCopyText(void *, void *);
/*还有很多API,比如说挂机的啊,拨号的啊,获取 iccid,imsi,cell id,bootload/fireware版本的啊,暂时用不上,就没有一一弄出来哦*/
获取IMSI 号码:
NSString * imsi= CTSIMSupportCopyMobileSubscriberIdentity(/*nil*/);
获取SIM卡状态:
NSString * simStatus= CTSIMSupportGetSIMStatus();
截获短信(3.0暂时已经失效):
void SmsCallBack (
CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo
)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (!userInfo) return;
if ([[(NSDictionary *)userInfo allKeys]
containsObject:@"kCTSMSMessage"]) // SMS Message
{
void *message = (void *)
[(NSDictionary *)userInfo objectForKey:@"kCTSMSMessage"];
NSString *address = CTSMSMessageCopyAddress(NULL, message);
NSString *text = CTSMSMessageCopyText(NULL, message);
NSLog(@"address = %@,text =%@",address,text );
}
}
[pool release];
}
id server = CTTelephonyCenterGetDefault();
CTTelephonyCenterAddObserver(server, self, smsCallBack,kCTSMSMessageReceivedNotification,NULL,4);
发送的代 码应该是(难道我弄错了么?为什么发送不成功):
id server = CTTelephonyCenterGetDefault();
id msg = CTSMSMessageCreate(0,@"10086",@"fuck");
id result=CTSMSMessageSend(server,msg);
apple在iphone 3.0在短信方面做了很大程度的修改,同时也让我看到了他们开放sms方面sdk的打算,现在有了一个ChatKit,ClassDump下来貌似很复 杂,我还是ClassDump了一下他的CoreTelephony,惊喜的发现里面多了很多obj c的class,修改了一下大致是下面这个样子,也是随便找个头Copy进去就可以用:
@interface CTMessageCenter : NSObject
{
}
+ (id)sharedMessageCenter;
- (id)init;
- (id)sendSMS:(id)fp8;
- (id)sendMMSFromData:(id)fp8 messageId:(unsigned int)fp12;
- (id)sendMMS:(id)fp8;
- (id)send:(id)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8 telephonyCenter:( id)fp12 isDeferred:(BOOL)fp16;
- (int)incomingMessageCount;
- (id)allIncomingMessages;
- (void)acknowledgeIncomingMessageWithId:(unsigned int)fp8;
- (void)acknowledgeOutgoingMessageWithId:(unsigned int)fp8;
- (id)incomingMessageWithId:(unsigned int)fp8;
- (id)deferredMessageWithId:(unsigned int)fp8;
- (id)statusOfOutgoingMessages;
- (id)encodeMessage:(id)fp8;
- (id)decodeMessage:(id)fp8;
- (BOOL)isMmsEnabled;
- (BOOL)isMmsConfigured;
- (BOOL)sendSMSWithText:(id)fp8 serviceCenter:(id)fp12 toAddress:(id)fp16;
@end
从接口上来看,发送, 截获应该都可以搞定,还能支持彩信
发送很简单:
[ [CTMessageCenter sharedMessageCenter] sendSMSWithText:@"1111" serviceCenter:nil toAddress:@"138XXXX0610"];
截获很诡异的,我不知道他是怎么通知的,看里面的代码应该最终还是用了 CTTelephonyCenterAddObserver,我在想从这个类派生一个能不能截获呢?有待测试。
顺带提一下,ida反出来 的arm代码还是很郁闷啊,关键是没办法跟踪调试,CTSMSMessageSend肯定是可以发送的,而且就是2参数,神啊,help me?!
发表评论
-
iPhone开发关于UDID和UUID的一些理解
2013-03-20 15:39 1140一.UDID(Unique Device Identifi ... -
卸载xcode4.2
2012-11-20 22:59 936卸载xcode4.2 Terminal: sudo < ... -
XCode 4.2支持iOS 5.1.1真机调试的实现 .
2012-11-20 22:25 1477目前市面上的ios设备,操作系统都是5.1.1的版本了。但是偶 ... -
Objective-C实现信用卡校验
2012-07-09 11:00 1003Objective-C实现信用卡校验(Luhn algorit ... -
object-c:property,assign,copy,retain,release区别
2012-06-01 17:03 1092例子: @property(nonatomic,retain) ... -
mac终端命令大全
2012-05-25 17:17 1546可以在终端里用 rm -rf ... -
xcode 编译静态库
2012-05-25 16:53 1409这里以libcurl 为例: 1.首先需要下载 ... -
IOS中设置使用GDataXML解析类库
2012-05-24 18:01 2021如何在项目中设置使用GDataXML解析类库 1. 从http ... -
ios框架
2012-05-21 16:02 11251.ASIHTTPRequest 大名鼎鼎的asi很多人应该 ... -
UISearchBar and UITableView搜索例子
2011-09-20 23:36 1790UISearchBar and UITableView是我们很 ... -
iphone里读取gb2312(中文)编码文件或者二进制流。
2011-09-06 17:37 1552说到文字编码,与文件读写打过交道的软件开发人员应该都知道,比如 ... -
iOS4.0程序内发短信
2011-09-06 10:05 1302OS4.0新加入了MFMessageComposeViewCo ... -
Xcode4 SVN配置
2011-09-01 17:17 1079Xcode SVN配置 编辑 ~/.subversion/co ... -
stretchableImageWithLeftCapWidth:topCapHeight:函数用法 总结
2011-08-09 16:25 2175stretchableImageWithLeftCapWidt ... -
iPhone开发中的问题整理(一)
2011-08-08 23:16 1074看到很刚开始开发iPhone软件的朋友问很多问题,其实同样的问 ... -
iPhone多线程编程初体验
2011-08-08 22:24 1069iPhone多线程编程初体验 2011-06-07 17:35 ... -
iphone多线程的使用
2011-08-08 22:15 932以下是开发初期收集整 ... -
多线程之NSInvocationOperation
2011-08-08 22:09 655多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始 ... -
iPhone上的JSON
2011-08-08 22:04 910JSON我就不多解释了,需要更多信息的朋友请到json.org ... -
循环使用整个NSArray内的对象
2011-08-08 22:04 942循环使用整个NSArray内的对象是非常常用的了,而且最近我在 ...
相关推荐
可以修改iPhone 上的短信,如果你觉得别人发给你的短信不爽的,可以用这个工具来修改。还可以添加短信到手机上。功能非常强大,所以大家不要用来干坏事。后果自负。 最重要的是手机不需要越狱。
《IPHONE短信导出工具1.1.1:掌握iPhone短信备份与恢复的关键技术》 在数字时代,手机中的信息变得越来越重要,尤其是短信,它可能包含着重要的联络信息、交易记录或者珍贵的记忆。对于iOS用户来说,如何安全有效地...
本文将深入探讨与"IPHONE短信铃音"相关的知识点,包括iOS的声音格式、铃声制作、系统限制以及如何为应用程序集成自定义铃声。 首先,我们注意到压缩包内的文件名均以`sms-received`开头,这表明它们是专门为短信...
在【标题】"iPhone短信气泡图片"和【描述】中,我们关注的是与iPhone短信气泡相关的图像内容。 短信气泡的设计遵循了几项关键原则: 1. **方向性**:发送的信息通常显示在屏幕右侧,气泡朝向左侧,而接收的信息则...
本文将详细讲解如何利用"iPhone手机短信恢复软件免费版"来恢复丢失的短信,以及相关的重要知识点。 首先,我们需要理解的是短信数据是如何存储在iPhone中的。iPhone的短信数据储存在其内部的SQLite数据库中,这些...
这篇PPT(PowerPoint演示文稿)可能详细介绍了他们的发现和攻击过程,揭示了iPhone操作系统中的安全漏洞,特别是与短信服务(SMS)相关的部分。在描述中提到的短信病毒,是一种恶意软件,通过伪装成普通短信来欺骗...
"iPhone短信发送成功音效"是用户与手机交互时的一种反馈机制,它通过听觉信号告知用户信息已成功发送。这个特定的音效,通常是一段短暂而清晰的音频,表明短信已从iPhone发出并成功送达对方的设备。 音效设计对于...
【标题解析】 "Android仿iphone-气泡短信-DEMO.zip" 这个标题表明这是一...通过研究这个DEMO,开发者不仅可以学习到如何在Android上创建类似iPhone的气泡短信界面,还可以了解到Android应用开发的基本流程和最佳实践。
已把三星经典短信铃声改成Iphone短信铃声格式ogg
从iphone中将短信导入Android手机中,详细,包会,有图有真相
【描述】"源码参考,欢迎下载" 提示这是一个开放源码的项目,开发者可以下载并研究其中的代码,学习如何在Android应用中构建一个模仿iPhone气泡短信效果的功能。这为开发者提供了一个实践和学习的机会,通过阅读和...
总之,这个DEMO是一个学习Android UI设计和自定义视图的好素材,开发者可以通过研究源码,了解如何在Android平台上复现iPhone的气泡短信界面,进一步提升自己的开发技能。同时,也可以从中学习到如何组织和管理...
"安卓短信转到iPhone"这一主题就是针对这一需求,旨在帮助用户将Android手机中的短信和MMS(多媒体短信)无缝转移到iPhone上。在这个过程中,用户可能会遇到各种挑战,如数据格式不兼容、无直接同步功能等。下面我们...
这个压缩包“iphone短信apk.zip”可能包含了这样一个应用的安装文件和其他相关资源。 描述中的“Mmsiphone.apk”很可能就是这个iPhone短信模拟应用的主要程序文件。APK文件包含了应用的代码、资源、库和清单文件,...
这个Android应用源码项目"Android 仿iphone 气泡短信 DEMO"是一个毕业设计作品,旨在帮助学生...同时,该项目也可以作为毕业论文的一部分,讨论设计思路、技术选型、遇到的问题及解决方案,为学术研究提供实践案例。
《仿iPhone短信插件:iPhone Messages v1.24by孤行车诚俊.apk详解》 在当前的移动通信领域,iOS系统以其独特的界面设计和流畅的用户体验深受用户喜爱,尤其是其内置的短信应用。然而,对于Android用户来说,想要...
这个"仿iphone气泡短信DEMO"压缩包文件提供了相关的示例代码,帮助开发者理解和实现这一功能。以下是一些关键知识点的详细说明: 1. **自定义布局(Custom Layout)**:iPhone的气泡短信UI以其独特的对话气泡著称,...
【标题】"仿iphone气泡短信 DEMO"是一款模拟iPhone短信应用中对话气泡效果的示例项目。这个DEMO展示了如何在Android平台上创建类似iOS系统中的气泡样式,用于展示对话内容,使得用户界面更加直观和友好。 【描述】...
- iPhone的弹出式短信视图通常采用半透明背景,以保持部分底层界面可见,同时突出显示短信内容。 - 设计应包含必要的元素,如发送者、时间戳、短信内容以及关闭按钮。 - 动画效果是关键,包括视图的淡入淡出、平...