Vmware下安装苹果系统及iMessage协议研究
Apple公司全线在mac os与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。
我们的iPhone用户的iMessage时不时就能收到发送者的垃圾iMessage推广信息,针对iMessage的群发实现,新闻稿上说是花几分钟写个脚本就可以了。经过研究终于实现了在苹果电脑和Windows系统上实现了全自动发送imessages信息。
研究怎么实现iMessage群发先是从XMPP协议开始的,因为Apple MAC os上的ichat是XMPP客户端,可以连接iMessage服务器,同时也可连接gtalk与weibo私信。但后面发现iMessage的服务器验证是加密,没办法实现非ichat XMPP客户端连接iMeesage服务器,那就自然没办法实现程序控制往iMeesage服务器批量发送信息。
只能通过MAC OS或者iOS自带的程序往iMeesage服务器发送信息,那要实现群发,自然只能想办法去调用自带的这ichat客户端,在MAC OS系统上Apple公司提供一种叫Apple script的脚本来自动实现任务。可能通过tell application "Messages"
就可以激活iMessage客户端自动发送信息。这样实现的群发的思路就很清楚了。
一、在Windows系统上vmware安装部署苹果系统(Mac OS)的方法:
/*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些 “破解补丁” 工具欺骗macOS系统,让苹果系统认为你的电脑其实是一台苹果电脑,从而可以安装运行。*/
1.购买苹果笔记本或苹果一体机(俗称白苹果),使用app id激活应用即可正常使用。
2.通过大于16G的U盘制作Mac OS系统的启动盘,使用U盘将黑苹果系统安装到我们的英特尔或者AMD架构的硬件上,然后通过相关工具将黑苹果洗成白苹果,并使用相关工具注入设备串码后正常的使用FaceTime,Imessages等苹果自带的应用。
3.Windows下通过安装Vmware虚拟机,在Vmware虚拟机下安装Mac OS黑苹果系统,通过特定工具以及技术洗白苹果后,然后通过克隆复制多开苹果系统,通过脚本全自动实现批量群发。
注:在非正品苹果电脑上正常安装和使用苹果系统应用,电脑安装黑苹果系统总结为以下几种方式:
(1)AMD或英特尔架构的真机电脑上通过U盘定制EFI引导文件安装苹果系统
(2)Widonws下通过镜像恢复软件安装苹果系统到本地磁盘
(3)虚拟机上根据不同的CPU,主板,显卡等硬件信息制作黑苹果引导工具后进行完美安装,并根据机型ID选择适配的设备串码洗白苹果
二、AMD或者英特尔架构的Windows主机上安装的苹果系统(Mac os)或Vmware下安装苹果系统的注意事项:
/* 如果登陆app store过程一直在转圈的情况,或imessage或FaceTime一直无法激活的原因是:app store 会检查机器的smbios 信息,如果不是 mac 机器,就不让登录。*/
(1) Clover configurator 或OpenCore制作引导EFI文件后。正确的注入三码或五码。(三码或五码不能胡乱套用,必须和机型ID匹配)
(2) 登录“偏好设置-icloud” 或直接登录imessages时正确输入app id账号信息。
三、苹果iMessage协议分析
1.实现自动群发imessage的两个方法(一个是通过XMPP协议,另一个是通过AppleScript脚本控制iMessage客户端,实际开发参考相关博文文章: https://www.cnblogs.com
代码如下:(注意:要根据CPU架构,显卡,主板等硬件来部署Mac OS系统,且安装的苹果系统需要根据对应机型的修改五码到系统、然后编写自动发送程序来实现群发。
tell application "Messages"
set csvData to read "/Users/用户/Desktop/test.txt"
set csvEntries to paragraphs of csvData
repeat with i from 1 to count csvEntries
set phone to (csvEntries's item i)'s text
set myid to get id of first service
set theBuddy to buddy phone of service id myid
send "今天北京晴,气温16到23度;周三晴,气温16到23度,北风1-3级;周四晴,气温17到25度,微风<3" to theBuddy
delay 3 -延时三秒,不然取不到已发达的内容
set FailNum to (get count chat)
if FailNum>100 then
repeat with j from 1 to FailNum
set phone to (get name of chat (FailNum-j))
set DelMsg to "iMessage;-;" & phone
if exists (text chat id DelMsg) then
delete text chat id DelMsg
end if
end repeat
end if
end repeat
end tell