关于 MAC OSX El Capitan 10.11 中 引入的安全机制和非签名内核扩展

背景 升级最新的MAC OSX El Capitan已经有段时间了,事实上最近系统已经更新到了10.11.2,也就是该大版本的第2个update。我有一台2011年的老Macbook Pro 15,我相信应该是其做工的问题,蓝牙信号很不好。拿去当地天才吧看过,确认了这个问题,但是告知我这款机器是将蓝牙天线集成在屏幕中的,如果要解决这个问题就需要连屏幕一起换了,于是我就算了。我需要在这台机器上使用蓝牙耳机,于是单独买了一个USB的蓝牙dongle(El Capitan直接支持一些外接USB蓝牙适配器,Broadcom 20702A1芯片,0a5c:21e8这款是大路货),这个问题也就算曲线解决了。但是我是一个不升级最新版本不舒服的人,也因为这点后面问题来了。 MAC中蓝牙驱动固件机制 大部分的Broadcom蓝牙设备使用一种叫RAMUSB的系统机制,这种机制允许系统把该设备的固件即时上传,但是每次关机或者重启就会丢失。在Broadcom提供给windows的驱动中,broadcom的驱动做法是每次开机就会上传一次最新的驱动。但是Mac OSX中不是这样的。所以针对我这款USB蓝牙适配器,虽然即插即用,但是固件版本是v4096(后续更新后可以到v5555)。那么自然就需要把类似windows中的做法也在mac中实现就可以了 BrcmPatchRAM 这方面老外总是早早的就有了想法,并且有了proof of concept的实现。BrcmPatchRAM就是这样一个可以帮我完成上节问题的开源项目,放在github上。实现方法大概如下: 以Mac OSX的内核扩展形式在每次开机时加载一次,将从windows驱动中提取出来的zhx格式固件上传,这样设备就可以用新版固件运行。 签名的内核扩展 好东西是有了,但是新问题又来了。早在OSX 10.8的时候,苹果就以安全为名义引入了需要签名的内核扩展,意思就是说不是随随便便的就可以写一个kext,放到系统中让系统在启动时一起加载的。OSX系统需要审查!只有获得苹果签名的kext才可以正常加载。而这类实用的野路子kext是肯定不会获得苹果的签名的。幸好在桌面系统上,苹果并没有严格到将以上规定设计成绝对。事实上一直以来都留了一个官方的开关,允许用户主动关闭这种审查。当然后果就是给恶意代码也开了方便之门。到了El Capitan,苹果将这个开关变了个法子,引入了所谓的SIP机制。一直到El Capitan的DP8之前,其实SIP是有明显的漏洞的。根据Pike的说法,他找到了在DP8之前根本不需要关闭SIP就可以随便植入不签名的kext的玩法。有兴趣的可以自翻看那篇博客,内容很是干货。 植入未签名kext 不管是SIP还是之前的kext-dev-mode,其实从安全性角度是很有必要打开的,确实我们平时实际使用中,针对弹出的要sudo权限的密码窗口,基本是直接给的。真的碰上一些恶意软件也是麻烦。截至目前10.11.2,苹果是允许你暂时关闭SIP,然后将未签名的kext复制到/System/Library/Extensions(俗称/S/L/E)。重启机器,这样osx系统会根据最新的改动,重新生成/System/Library/PrelinkedKernels/prelinkedkernel这个文件。然后我们可以将SIP重新打开,后续只要prelinkedkernel没有变化就没问题(一般在系统update时这个文件肯定会变。所以未签名的kext在系统小版本号更新后都会失效,需要重新开关SIP重启系统)。

WiFi定位原理

转自 blogspot 第一 : iPad wifi 版本没有GPS晶片,这是一个事实,根据Apple自己的规格说明有讲到,确实无法透过GPS定位。 第二:仅有Wifi的设备开启Maps等具有Location Services的软体在部份情况下还是可以得到定位资讯,他靠的就是大家提到的Wifi定位. 第三:分辨有没用到GPS定位,应可以从有没有看到一个波纹从蓝点间歇且规律的散出而判断。Wifi定位就看不到那个波纹。 所谓Wifi定位就是有某个单位把很多的Wifi基地台的资讯与经纬度坐标做了连结,当你站在有被纪录到的Wifi基地台附近时,经查询资料库后获得相对的经纬度资讯来即可完成定位。而Wifi基地台有效范围通常也就那么一点点距离,因此大家会觉得定位蛮准确的。另外一点比较有趣的是Wifi定位不会乱跑,而GPS定位在收讯不佳的情况下多多少少会看到小蓝点在漂移。 那么是谁那么好心帮忙收集这些资料呢,早期是股沟的街车,四处逛大街时”顺便”帮你我家里的Wifi资讯“不经意的”给纪录下来。从最早的iOS 1 到了iOS 3.1 我们的iDevice都是依靠股沟老大及Skyhook的资料库提供我们做Wifi定位。 但如果你家住在高楼大厦或巷弄里,你就是确定股沟的扫街车不可能扫到你的wifi基地台,那还怎么定位呢。 Apple表示到了iOS3.2之后已不在依靠他人来做Wifi定位,在2010年四月后已改由自家的资料库来提供Wifi定位服务。怪了Apple又没扫街,哪来的资料,其实就是在你我”不经意”的协助下帮Apple完成了庞大的资料库建置。这几年有无数台的 iPhone 与 iPad 3G 无时无刻的在各地流串,都是具有GPS晶片的机器,当你第一次开启地图时,都会看到一个讯息,OOXX想使用你的Location资讯XXOO#%…您是否同意。我想绝大部份人都是按同意的。这时候我们都变成了无名英雄,简单的说当你我在逛大街时iDevice即将GPS定位获得的经纬度坐标以及所在位置的Wifi基地台资料适时的回报上去。日积月累下庞大的资料库就建立完成了。我想应该有部份长期使用iPhone的人会有印象,从一代到现在,不知从什么时候开始在室内定位就变得准却多了….就是这样来的。 PS. Apple表示这部份资料是匿名上传,且透过Wifi上传,所以大可不必担心资料安全或3G网路传输的问题。 因此,回到原先的问题点,如果你同时拥有两种iDevice,一个有GPS晶片,一个没有( 如iPodTouch/ iPad wifi ),那么应该你在家里两种设备都很容易可以完成定位,因为你一定会不经意的站在窗边使用iPhone/iPad 3G 而接收到GPS坐标并回报Wifi基地台资料,接着你的 Touch / iPad wifi 也就很轻易的可以透过查询Wifi资料而定位。但如果不幸你仅有Touch或iPad wifi,那其实也不是就定不到了,只要你有朋友或任何情况下路人甲拿着iPhone经过你家并收的到你的Wifi基地台资料,那么很快的你也可以定位了。

从apple trailer官网下载预告片的方法

?????apple???????????????????????????LP????????????????????????????apple???????????????????????????09???????????????????apple???????? ????????Trailer HD??????quicktime??????????????????????LP?????????????????????????????????????????????????????????????apple????????User-Agent???????????apple???User-Agent?QuickTime??????????????????????????????User-Agent???IE???????UA?????????????????????wget????????wget -U QuickTime http://trailers.apple.com/movies/disney/up/up-tlr3r_h720p.mov ?????103M???????????LP?????????????????? Update0: IE??user-agent????????HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent ??????????????????????IE????? Update1: ???User-Agent????? ???? ????????User-Agent.

DELL in the end!

上周还在犹豫不定到底是选择苹果的mbp 13还是dell的差不多价格的机器,最后博文中选择的是mbp 13. 但是写好文章后又很纠结的左思右想了一番。最后还去bestbuy晃了一圈。回家在网上订了dell studio系列。 其实dell studio系列在网上的负面消息不少,尤其是散热问题。但是我这段时间综合对比下来还是选择DELL也是不无道理的。 总的来说还是价格因素。mbp 13的机器在中国的价格是9500左右,开增票可以抵扣掉一定的百分比,算下来价格和香港货价格差不多。不能开增票的话也可以去淘一台港行的机器。再加上3年的applecare,就是(9500+1600)*T%。DELL的话我在网上订了dell studio 1558,修改了CPU和内存等配置,最后还和dell的销售磨磨嘴皮子,价格是11527*T%,貌似dell的还贵上一些,但是配置区别还是很大的,i7-720qm,8G ddr3-1333 1920×1080的屏幕,500G硬盘。可以说大大的甩开了apple的mbp13(P8600+4G DDR3-1066 + 320G+320M无显存) 我应该还是一个cpu多核控+大内存控+高清屏控,其实这里面有一点是我比较遗憾的,就是DELL只能让我配置ati的显卡5470 1G显存,如果可以配上330M GT或者335M GT该多好呀,预计ATI那块显卡在Linux中不会有什么大作为。但是在Windows 7中应该没有什么关系。拿来电脑系统的安装选择以下2种方案: 1. Windows7+VMware(MacOSX) 2. Ubuntu + VMWare(MACOSX+WIN7) 这就看ati的显卡在ubuntu中能有多大作为了。驱动不行的话就上win7吧。