首页 > 其他分享 >如何实现iMessage群发及自动发送

如何实现iMessage群发及自动发送

时间:2024-04-05 17:35:34浏览次数:20  
标签:set Messages iMessage 发送 群发 客户端

 Apple公司全线在mac os与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。
研究怎么实现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客户端自动发送信息。这样实现的群发的思路就很清楚了

 

 

一、iMessage推送技术实现
群发iMessage主要需要攻破两个技术难点,一个是iMessage账号的获取,另一个是群发iMessage。升级版本请参考博文首页相关文章: https://www.cnblogs.com/dlbolgs/
#iMessage账号获取
iMessage账号目前获取的方法主要是扫描手机号码。扫描手机号码可以通过代码自动扫描,也可以通过人工筛选。通过代码自动扫描,建议大家可以从以下两方面着手
1.编写AppleScript脚本控制Mac OS自带的iMessage客户端进行验证,类似于群发iMessage。发送一条iMessage之后,如果捕获到发送失败的异常则不是iMessage账号
2.研究iOS系统中Message framework中的私有api,通过私有api进行验证

#实现iMessage群发
1.通过AppleScript实现批量注册itune帐号
2.通过AppleScript实现自动取一个itune帐号群发100个APPle ID的iMessage

 

set EMAIL to "EMAIL_DEL_DESTINATARI" -- el destinatari ha de tenir l'iMessage activat
set MSG to "COS_DEL_MISSATGE"
set N to the 1000 -- nombre de vegades que s'enviarà el missatge
set APPLE_ID to "E:" -- la teva Apple ID que ha de tenir iMessage activat
repeat N times
    tell application "Messages"
        send MSG to buddy EMAIL of service APPLE_ID
    end tell
end repeat

 

 

 

iMessage自动群发
检验完所有账号后,可以从中选取出iMessage账号进行群发。群发有两个方法,一个还是通过iMessage客户端,另一个是通过AppleScript脚本控制iMessage客户端发送。
1.通过iMessage客户端发送,可直接将号码粘贴至地址栏,填写内容,发送即可。
2.通过ApplseScript控制iMessage客户端的脚本如下:以下代码可从一个csv文件中读取出iMessage账号,并通过iMessage客户端逐个发送iMessage消息。

tell application "Messages"
set csvData to read "/Users/xxxx/Desktop/test.csv"
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 "今天北京晴,气温13到27度;周二晴,气温11到26度,北风3-4级;周三晴,气温11到24度,微风<3" to theBuddy
end repeat
end tell

需要注意如下问题:
1.由于该脚本是控制iMessage客户端进行发送,所以必须在MacOS 10.8以上的系统中运行,同时开启iMessage程序。
2.该脚本在发送iMessage时并不是后台发送,所以当发送量很大时,会导致iMessage客户端运行缓慢,甚至无法开启。可通过清空所有已发送的iMessage或注销账号解决。
3.通过脚本发送的iMessage账号必须是在当前iMessage客户端中检验过的,否则会报“不能获得“buddy id "C0B35E7F-A0FB-49E1-BDD7-C867BC06D920:+86136xxxx0000"”。

三个问题解决方案如下:
第一个问题用mac os系统或者黑苹果装10.8操作系统,会自带messages程序,这程序系统自带,千万不会发现打不开去删除Messages程序,删除就只能重装系统了。并且是先打开Messages程序,再启动apple script脚本,不然运行不正常。
第二个问题,在发送过程中加入同步删除的代码,但同步一条一条删除时有时会失败,所以再增加发一定量后再批量删除一次的操作,正常的流程应该是打开Messages程序->循环号码库->读取一个号码->发送一条信息->等待1秒->删除此条信息->判断是否未删除的超过100条,是批量删除->循环号码库。这样就可以保证Messages程序不会去占百分一百多的CPU或者几个G的内存。
第三个问题,在messages程序的imessage帐号中设置用来群发的imessage帐号。就没有问题了。

#单独发送iMessage示例

tell application "Messages"
    set csvData to read "/Users/xxxx/Desktop/test.csv"
    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 "今天北京晴,气温13到27度;周二晴,气温11到26度,北风3-4级;周三晴,气温11到24度,微风<3" to theBuddy
        delay 1 -延时一秒,不然取不到已发达的内容
        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

 

标签:set,Messages,iMessage,发送,群发,客户端
From: https://www.cnblogs.com/dlbolgs/p/18115955

相关文章

  • 苹果短信,imessage群发,苹果imessage,imessage推信,苹果系统imessage应用实现群发的原
    一、在Windows系统上通过vmware下安装部署苹果系统(MacOS)的几种方法:/*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁”工具欺骗macOS系统,让苹果系统认为你的电......
  • Python进阶:使用requests库轻松发送HTTP请求并获取响应
    Python进阶:使用requests库轻松发送HTTP请求并获取响应简介:本文将带您深入了解Python中强大的requests库,学会如何使用它发送各种HTTP请求,并轻松获取响应内容。无论您是初学者还是有一定经验的Python开发者,本文都将为您提供实用、详细的指导,助您在网络请求与响应的处理上更上......
  • 用UDP协议实现发送接收的网络聊天室
     发送数据 UDP协议是面向无连接的"面向无连接的"通常指的是一种网络通信模式,也称为无连接通信或者数据报通信。在这种模式下,通信的两个端点之间不需要建立持续的连接,而是通过将数据分成小块(数据包)并单独发送来进行通信。每个数据包都包含了足够的信息(如源地址、目标地址......
  • 苹果电脑版(Mac os)系统和iphone(IOS系统)手机发送imessages短信的全部方式
    一、iphone手机(IOS系统)上群发总结为以下几种方式/*经小编通过测试,使用iphone手机进行iMessage群发分越狱和免越狱版,越狱版可以做到通过修改序列号来达到无限次数更换ID,免越狱iphone只可以做到大约60、70次更换ID此后将无法再更换ID。*/1、通过iphone手机上自带的快捷指令,来......
  • Prometheus+Alertmanager+Node_exporter监控系统并动态配置数据库告警规则发送动态通
    前提需求:告警规则和告警发送通知策略都动态配置在数据库,方便管理和随时修改、删除。Prometheus需要动态读取数据库配置的告警规则,并根据数据的通知策略(邮件、短信、钉钉、微信等)把告警发送出去。需求分析:下面主要从表设计、组件配置、代码逻辑设计几个方面介绍。1.表设计1.1......
  • STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天原理解析)
    STM32第六天一、 USART1、USART概念USART:(UniversalSynchronous/AsynchronousReceiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备处理器与外部设备通信的两种方式:u并行通信(八车道)......
  • 苹果iMessage虚拟机群发协议系统
    苹果iMessage虚拟机群发协议系统(AppleiMessageVirtualMachineGroupSendingProtocolSystem)是一个针对苹果iMessage应用程序设计的系统,它允许用户通过虚拟机一次性向多个收件人发送消息。以下是该系统的主要组件和工作流程:主要组件:虚拟机:运行macOS操作系统的虚拟机,用......
  • python使用request发送x-www-form-urlencoded类型的数据
    场景:当接口的Content-Type类型是x-www-form-urlencoded,使用json类型去请求,无法请求成功解决方法:使用parse.urlencode()方法对json数据进行解码处理,再传入。实例代码如下:importrequestsfromurllibimportparsesession=requests.session()headers={"Content-Type":"app......
  • 项目开发---用户登录发送短信实现(使用阿里云短信接口)(看这篇就够了)
    目录:使用阿里云开通短信服务教程编写代码使用阿里云开通短信服务教程阿里云官网......
  • IP(Internet Protocol)是一种网络协议,用于在网络中发送和接收数据包
    IP(InternetProtocol)是一种网络协议,用于在网络中发送和接收数据包。它是一个无连接的、不可靠的数据报协议,负责将数据从源主机传输到目标主机。IP协议的主要功能包括寻址、路由和分段。寻址:IP协议为每个连接到网络的设备分配一个唯一的IP地址,这个地址用于在网络中识别设备......