手机版 - imessage信息群发,苹果imessages短信,imessages推信,苹果手机推信,苹果imessage群发实现原理

news/2025/3/15 7:25:36/文章来源:https://www.cnblogs.com/imblog/p/18105253

Apple公司全线在mac os与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。这样iPhone的iMessage时不时就能收到发送者的垃圾iMessage,针对iMessage的群发实现,新闻稿上说是花几分钟写个脚本就可以了。经过研究终于实现了全自动控制苹果手机来自动发送,还可以通过群控方式实现大批量群发。
 一、苹果手机上(ios系统)实现imessages群发总结为以下几种方式
/* 经小编通过测试,使用iphone手机进行iMessage群发分越狱和免越狱版,越狱版可以做到通过群控自动修改序列号来达到无限次数更换ID,免越狱iphone只可以做到大约60、70次更换ID此后将无法再更换ID。*/
1.通过编写运行于iPhone手机上的脚本来实现群发imessages短信(发送速率快,无需证书签名,可单台手机安装脚本实现自动发送,也可以电脑安装群控软件去控制其他N台iphone手机自动群发)
2.通过编写运行于iPhone手机上的app来调用iphone手机上的imessages应用实现群发 (发送速率快,需要证书签名,可单台手机安装脚本实现自动发送,也可以一台电脑去控制其他N台iphone手机自动群发)

 

 

二、苹果手机全自动群发脚本
1.脚本全自动发送短信(最新升级版本请参考博文首页相关文章:https://www.cnblogs.com/imblog/)
第一种:iphone手机不多的情况下,每台手机手动安装imessage自动群发程序并上传发送数据和发送内容后,手动的一台一台手机去启动自动发送脚本即可开始全自动imessage发送。
第二种:iphone手机比较多的情况下,通过windows/mac os电脑上安装群控软件,群控软件自动控制局域网或广域网下所有的iphone手机,群控软件一键给全部手机全安装群发脚本(完全不用去单独管理手机),群控软件来控制所有手机设备,去自动运行群发脚本。
main.lua代码示例(展示部分核心代码如下):

 1 require("TSLib");--导入扩展库
 2 require("lib")--导入方法库
 3 
 4 
 5 init(0) -- 0表示竖屏 1表示横屏
 6 unlock_iphone() --自动解锁IOS屏幕密码锁,前提是Iphone手机未设置屏幕锁密码
 7 
 8 
 9 -- 主线任务处理
10 function 主线任务()
11         --根据不同的IOS设备分辨率去执行不同的任务
12         local ios_version = get_ios_version(w, h)
13         if ios_version=="640x960" then           --分辨率:640x960    机型:iPhone 4,4S, iPod touch 4
14             iphone4_work("phone.txt")
15         elseif  ios_version=="750x1334" then    --分辨率:750x1334   机型:iPhone 6(S)/7/8
16             iphone6_work("phone.txt")
17         elseif ios_version=="1242x2208" then    --分辨率:1242x2208  机型:iPhone 6 P/6SP/7P/8P
18             iphone8p_work("phone.txt")
19         end
20 end
21 
22 
23 
24 function iphone4_work(filename)
25     local file = userPath().."/res/".. filename
26     local bool = exists(file) --检测指定文件是否存在
27     if bool then
28         dialog("iPhone 4,4S, iPod touch 4 分辨率:分辨率:640x960")
29     elseif
30         dialog(filename .. " 数据文件不存在,请检查是否已上传.",0)
31         lua_exit();
32     end
33 end
34 
35 
36 
37 function iphone6_work(filename)
38     local file = userPath().."/res/".. filename
39     local bool = exists(file) --检测指定文件是否存在
40     if bool then
41         dialog("iPhone 6 P/6SP/7P/8P  分辨率:分辨率:1242x2208")
42     elseif
43         dialog(filename .. " 数据文件不存在,请检查是否已上传.",0)
44         lua_exit();
45     end
46 end
47 
48 
49 
50 function iphone8p_work()
51     dialog("iPhone 6 P/6SP/7P/8P  分辨率:分辨率:1242x2208")
52 end
53 
54 
55 -- -- --执行主线任务
56 if 任务 == "Imagess群发信息" then
57     --启动应用  0:启动成功 1:启动失败
58     r = runApp("com.apple.MobileSMS");
59     mSleep(3000);
60     if r == 0 then -- 启动成功则执行
61         主线任务()
62     else
63         closeApp("com.apple.MobileSMS")
64         dialog("应用启动失败",3);
65     end
66 end

lib.lua代码示例:

  1 --解锁屏幕密码
  2 function unlock_iphone()
  3     --如果要在设备自启动时解锁屏幕直接使用 unlockDevice 函数即可
  4     sysver = getOSVer();
  5     --获取系统版本
  6     local t = strSplit(sysver,".")
  7     flag = deviceIsLock();
  8     if flag == 0 then
  9         --dialog("未锁定",3);
 10         toast("iPhone屏幕锁未锁定")
 11     elseif tonumber(t[1]) >= 10 then
 12         doublePressHomeKey()
 13         unlockDevice();
 14         --按一次 Home 键
 15         mSleep(20)
 16         pressHomeKey(0);
 17         pressHomeKey(1)
 18         mSleep(1000)
 19     else
 20         pressHomeKey(0);
 21         pressHomeKey(1)
 22         --解锁屏幕
 23         unlockDevice();
 24         mSleep(1000)
 25     end
 26 end
 27 
 28 
 29 --获取IOS设备分辨率
 30 function get_ios_version(width, height)
 31     if width == 640 and height == 960 then          --iPhone 4,4S, iPod touch 4
 32         --iPhonedialog("iPhone 4,4S, iPod touch 4 \n".."分辨率:640x960")
 33         return "640x960"
 34     elseif width == 640 and height == 1136 then     --iPhone SE, 5, 5S, iPod touch 5
 35         --dialog("iPhone SE, 5, 5S, iPod touch 5 \n".."分辨率:640x1136")
 36         return "640x1136"
 37     elseif width == 750 and height == 1334 then     --iPhone 6(S)/7/8
 38        -- dialog("iPhone 6(S)/7/8 \n".."分辨率:750x1334")
 39         return "750x1334"
 40     elseif width == 1242 and height == 2208 then     --iPhone 6 P/6SP/7P/8P
 41        --dialog("iPhoneiPhone 6 P/6SP/7P/8P \n".."分辨率:1242x2208")
 42         return "1242x2208"
 43     elseif width == 1225 and height == 2436 then     --iPhone X
 44         --dialog("iPhoneiPhoneiPhone X \n".."分辨率:1225x2436")
 45         return "1225x2436"
 46     elseif width == 828 and height == 1792 then     --iPhone XR/11
 47         --dialog("iPhone XR/11 \n".."分辨率:828x1792")
 48         return "828x1792"
 49     elseif width == 1242 and height == 2668 then     --iPhone XS Max/11 Pro Max
 50         --dialog("iPhone XS Max/11 Pro Max \n".."分辨率:1242x2668")
 51         return "1242x2668"
 52     elseif width == 1125 and height == 2436 then     --iPhone XS/11 Pro
 53         --dialog("iPhone XS/11 Pro \n".."分辨率:1125x2436")
 54         return "1125x2436"
 55     end
 56 end
 57 
 58 
 59 --检测指定文件是否存在
 60 function exists(file_name)
 61     local f = io.open(file_name, "r")
 62     if f ~= nil then
 63         return true and f:close()
 64     else
 65         return false
 66     end
 67 end
 68 
 69 
 70 --将指定文件中的内容按行读取
 71 function read_file(path)
 72     local file = io.open(path,"r");
 73     if file then
 74         local _list = {};
 75         for l in file:lines() do
 76             table.insert(_list,l)
 77         end
 78         file:close();
 79         return _list
 80     end
 81 end
 82 
 83 
 84 -- 读取取txt文件中一行数据内容
 85 function readFile_one()
 86     local file = userPath().."/res/conntent.txt"
 87     local bool = exists(file) --检测指定文件是否存在
 88     if bool then
 89         local list = read_file(file)--将指定文件中的内容按行读取; 返回 table/nil 文件内容
 90         if #list > 0 then            -- #表示取长度
 91             for  i=1, #list,1  do
 92                 --dialog(string.lower(list[i]))
 93                 return string.lower(list[i])
 94             end
 95         end
 96     else
 97         dialog("话术内容文件 conntent.txt 不存在,请检查是否已上传.",0)
 98         lua_exit();
 99     end
100 end
101 
102 
103 --读取txt文件中所有的数据内容
104 function readFile_all()
105     local file = userPath().."/res/conntent.txt"
106     local bool = exists(file) --检测指定文件是否存在
107     if bool then
108         local f = io.open(file,'r')
109         local content = f:read('*all')
110         --dialog(content)
111         f:close()
112         return content
113     else
114         dialog("话术内容文件 conntent.txt 不存在,请检查是否已上传.",0)
115         lua_exit();
116     end
117 end
118 
119 
120 
121 --生成随机数
122 function randomStr(str, num)
123     local reStr ='';
124     math.randomseed(tostring(os.time()):sub(5):reverse());
125     for i = 1, num do
126         local getStr = math.random(1, string.len(str));
127         reStr = reStr .. string.sub(str, getStr, getStr);
128     end
129     return reStr;
130 end
131 
132 
133 --点击操作
134 function click(x, y, s)
135     local s=s or nil
136     touchDown(0,x,y)
137     mSleep(50)
138     touchUp(0,x,y)
139 end
140 
141 
142 --连续滑动
143 function clickMove(x1,y1,x2,y2,n)
144     local w = math.abs(x2-x1);
145     local h = math.abs(y2-y1);
146     touchDown(0,x1,y1);
147     mSleep(50);
148     if x1 < x2 then
149         w1 = n;
150     else
151         w1 = -n;
152     end
153     if y1 < y2 then
154         h1 = n;
155     else
156         h1 = -n;
157     end
158     if w >= h then
159         for i = 1 , w,n do
160             x1 = x1 + w1;
161             if y1 == y2 then
162             else
163                 y1 = y1 + math.ceil(h*h1/w);
164             end
165             touchMove(0,x1,y1);
166             mSleep(10);
167         end
168     else
169         for i = 1 ,h,n do
170             y1 = y1 + h1;
171             if x1 ==x2 then
172             else
173                 x1 = x1 + math.ceil(w*w1/h);
174             end
175             touchMove(0,x1,y1);
176             mSleep(10);
177         end
178     end
179     mSleep(50);
180     touchUp(0,x1,y1);
181 end

2.群控端一键控制全部手机自动发送停止,群发iMessages信息,并且在发送过程中后台方式下全自动更换每台手机设备UUID来达到防止封ID,手机设备等.
/* 电脑上安装的群控软件,群控软件来控制全部越狱或免越狱的iPhone手机设备,通过电脑上部署的群控端分别给每台手机上传不同的发送数据和发送内容后,使用群控软件来批量让所有手机设备全自动更换序列号,app id并自动发送iMessage短信*

 

注意:文中包含的脚本代码、工具、系统、图样只作为技术学习研究,请勿作为非法用途,因违反相关规定而触犯法律的,一切后果自负,与作者无关。
(1)苹果手机在启动全自动发脚本之前,首先手机设备 “通用-信息”中设置 "手机号作为发送号" 并且关闭 "作为短信发送" 功能。
(2)开启苹果手机的飞行模式,并设置连接Wife,通过无线或4G信号网络去发送iMessages信息
(3)全自动群发imessages脚本目前支持以下iPhone手机的IOS版本(其他版本的苹果IOS系统可以自行更改代码或有偿联系定制 )

1 机型:iPhone 4,4S, iPod touch 4            分辨率:640x960          已有
2 机型:iPhone SE, 5, 5S, iPod touch 5       分辨率:640x1136         可订制
3 机型:iPhone 6(S)/7/8                      分辨率:750x1334         已有
4 机型:iPhone 6 P/6SP/7P/8P               分辨率:1242x2208        已有
5 机型:iPhone X                         分辨率:1225x2436        已有
6 机型:iPhone XR/11                         分辨率:828x1792         已有
7 机型:iPhone XS Max/11 Pro Max             分辨率:1242x2668        已有
8 机型:iPhone XS/11 Pro                     分辨率:1125x2436        可订制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/720887.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web 网页性能及性能优化

Web 网页性能及性能优化 一、Web 性能 Web 性能是 Web 开发的一个重要方面,侧重于网页加载速度以及对用户输入的响应速度 通过优化网站来改善性能,可以在为用户提供更好的体验 网页性能既广泛又非常深入 1. 为什么性能这么重要? 1. 性能关乎留住用户 性能对于任何在线业务都…

C# .NET 6 使用WorkFlow Core 创建工作审批流

1,背景工作流思想在上世纪60年代就有人提出过;70年代就有人开始尝试,但是由于当时许多的限制,工作流一直没有成功的被实现;80年代才出现第一批成功的工作流系统;90年代工作流技术走向了第一个发展高峰期;90年代后至今工作流出现了很多版本,但是主旨还是不变的,为了使我…

简单实现Viper配置管理

本文由 ChatMoney团队出品简介 前面实现的一个简易suno-api。是使用cookie来获取suno-token发起请求的。当时并没有通过配置的方式来获取cookie,而是直接在代码中写死了cookie的值,这种做法并不好,所以现在打算把cookie值改造为一个配置,通过viper来读取。 什么是viper Vipe…

全局 type 类型的寻找 typescript 类型 - fabric.Canvas

全局 type类型的寻找 typescript 类型 - fabric.Canvas declare type ExtCanvas = fabric.Canvas & {isDragging: boolean;lastPosX: number;lastPosY: number; };这个代码 没有定义 fabric.Canvas,然后看看提示说在namespace定义了。这个是子项目,没有type定义,上父项目…

Linux中sed命令b选项屏蔽指定的处理区域

001、Linux中sed命令b选项屏蔽指定的处理区域[root@pc1 test2]# ls a.txt [root@pc1 test2]# cat a.txt ## 测试数据 1 01 02 a 2 03 04 a 3 05 06 a 4 07 08 5 09 10 k 6 11 12 a 7 13 14 8 15 a i 9 17 18 a [root@pc1 test2]# sed 1,3b; s/a/Q/ a.tx…

SwiftUI 热门开源库推荐第1期 - 凡人程序猿 - iOS开发

大家好,我是凡人程序猿。周末给大家分享几个我在用已久的 GitHub 开源库,这些开源库使用简单,功能强大,使用好它们能够为我们节省大量的开发时间。大家好,周末给大家分享几个我在用已久的 GitHub 开源库,这些开源库使用简单,功能强大,使用好它们能够为我们节省大量的开…

初探堆栈欺骗之静态欺骗

本文首发先知社区:https://xz.aliyun.com/t/14487 首先介绍一下堆栈欺骗的场景,当我们用一个基本的 shellcode loader 加载 cs 的 shellcode,在没有对堆栈做任何事情时,我们的堆栈是不干净的,我们去看一下堆栈时会发现有很多没有被解析的地址在其中,这显然是不正常的,因…

LLM 扩展开发工具

参考知乎: 大模型Agent智能体25款产品、商业案例随笔记(一) 、 基于大模型的AI搜索15款产品随笔记(二) LLM 扩展开发工具: 1、开源且无需编码(No-Code)的 LLM 应用构建工具: https://flowiseai.com/ ,将永远免费供商业和个人使用。代码库: https://github.com/Flow…

Linux 提权-Cron Jobs

本文通过 Google 翻译 Cron Jobs – Linux Privilege Escalation - Juggernaut-Sec 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 什么是 Cron Job?1.1 了解 Crontabs 和 Cron 目录 1.2 如何在 Crontab 文件中读取 Cron 作…

Spring Boot heapdump泄露内存分析方法

一、查看加密星号信息(适用于数据库密码、ftp、ssh) 1.首先访问地址:http://url/actuator/env 出现一些配置信息,搜索带有******可以看到ftp的ip,username,password 2.接着访问http://url/actuator/heapdump 下载下来heapdump文件 使用java自带的工具进行分析 位置:C:\Pro…

计算机简史-概述

讲解计算机发展的历史,人类如何从手工计算,发明工具,最后演变成如今的计算机。讲解计算机发展的历史,人类如何从手工计算,发明工具,最后演变成如今的计算机。 ‍ 为什么要了解计算机发展历史 简单说说我的看法:了解计算机发展历史,对我们掌握计算机底层的原理是非常有帮…

使用 Hugging Face 推理终端搭建强大的“语音识别 + 说话人分割 + 投机解码”工作流

Whisper 是当前最先进的开源语音识别模型之一,毫无疑问,也是应用最广泛的模型。如果你想部署 Whisper 模型,Hugging Face 推理终端 能够让你开箱即用地轻松部署任何 Whisper 模型。但是,如果你还想叠加其它功能,如用于分辨不同说话人的说话人分割,或用于投机解码的辅助生…