IOS制作之远程打击Android蓝牙仓酷云
对应sql里的tableNSPredicate谓语类似select语句中的条件上面这三个类就可以用来请求数据了在上周的CanSecWest平安集会上我叙述了一种对Android4.3及其以上版本合用的蓝牙协定栈(Bluedroid)的远程打击。这篇文章复杂的形貌了这个bug。假如读者没有耐烦的话,能够点这里间接寓目打击视频。
这个毛病存在于Bluedroid的BLE数据包剖析代码中。要测试这个毛病,打击者必要强迫一位用户毗连到歹意的BLE(蓝牙智能)设备上。毗连时,该歹意设备会公布一个格局毛病的GATT关照数据包,从而形成协定栈的溃散。
这听上往仿佛有点牵强——打击者能强迫一位用户毗连到设备上。但思索到如许一个现实:良多Android的BLE使用会合时毗连就任何告白设备下去断定其是不是是与该使用程序相干联的设备。只需有使用是出于打击的目标毗连就能够乐成。
但这个毛病没有可使用性:溃散是由一个FORTIFY_SOUCE检测毛病所酿成的。别的,该毛病已在Android4.4以上的版本中被修复。
成绩代码
成绩代码能够在stack/gatt/gatt_cl.c中的gett_process_notification(614行)处被找到。这段代码用于剖析关照包(BLE设备周期性的发送给BLE机主的动静)。在626行能够看到以下代码:
1
2
3
STREAM_TO_UINT16(value.handle,p);
value.len=len-2;
memcpy(value.value,p,value.len);
value.len是unit16_t。p和len都可由打击者把持,但我们只对len感乐趣。p暗示打击者发送的数据包内容,len则是该数据包的巨细。
这段代码输入一个最少2字节巨细的数据包。假如打击者发送了只要一个字节的格局毛病的数据包,那末value.len=len-2的盘算了局将会下溢到65534。那末memcpy将会试图从p中拷贝快要64000字节的数据。
演示
我为此做了一个演示视频。
我用经修正过的BlueZ(linux蓝牙协定栈)的版本搭建了一个打击平台,BlueZ在这里作为一个运转GATT服务的BLE设备。当一个BLE机主毗连时,它会主动发送一个只要单字节巨细的关照数据包。
在视频中,我利用一个BLE心跳监控使用演示了这个毛病。出于演示的目标,我手动毗连该使用至歹意的BlueZ设备。当音乐停止时协定溃散了。
adblogcat的输入相似于以下显现:
1
2
F/libc(19174):FORTIFY_SOURCE:memcpybufferoverflow.Callingabort().
F/libc(19174):Fatalsignal11(SIGSEGV)at0xdeadbaad(code=1),thread19956(BTU)
init指的是所有前面是init的方法比如UIView的初始化方法是-(id)initWithFrame:(CGRect)aRect在Objc里有很多这样关于函数命名的约定 同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。 看完这个你就可以有多种选择来踏入做应用的阶段 同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。 特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地 中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者, iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。 中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者, 有办法利用自己手头的电脑立刻开始这个美妙旅程的。 其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。 近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来, 在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。 每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。 边吃零食边看Stanford的视频教程 最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。 因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。 自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉 有办法利用自己手头的电脑立刻开始这个美妙旅程的。 边吃零食边看Stanford的视频教程 特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
页:
[1]
2