iPhone越狱版和免越狱版iMessages群发,iMessages短信,imessages推信群发实现原理

news/2024/12/22 14:11:36/文章来源:https://www.cnblogs.com/mackting/p/18622077

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/mackting/)
第一种:iphone手机不多的情况下,每台手机手动安装imessage自动群发程序并上传发送数据和发送内容后,手动的一台一台手机去启动自动发送脚本即可开始全自动imessage发送。
第二种:iphone手机比较多的情况下,通过电脑上安装群控软件自动控制局域网或广域网下所有的iphone手机,群控软件一键给全部手机全安装群发脚本(完全不用去单独管理手机),群控软件来控制所有手机设备,去自动运行群发脚本。
main.lua代码示例(展示部分核心代码如下):

require("TSLib");--导入扩展库
require("lib")--导入方法库init(0) -- 0表示竖屏 1表示横屏
unlock_iphone() --自动解锁IOS屏幕密码锁,前提是Iphone手机未设置屏幕锁密码-- 主线任务处理
function 主线任务()--根据不同的IOS设备分辨率去执行不同的任务local ios_version = get_ios_version(w, h)if ios_version=="640x960" then           --分辨率:640x960    机型:iPhone 4,4S, iPod touch 4iphone4_work("phone.txt")elseif  ios_version=="750x1334" then    --分辨率:750x1334   机型:iPhone 6(S)/7/8iphone6_work("phone.txt")elseif ios_version=="1242x2208" then    --分辨率:1242x2208  机型:iPhone 6 P/6SP/7P/8Piphone8p_work("phone.txt")end
endfunction iphone4_work(filename)local file = userPath().."/res/".. filenamelocal bool = exists(file) --检测指定文件是否存在if bool thendialog("iPhone 4,4S, iPod touch 4 分辨率:分辨率:640x960")elseifdialog(filename .. " 数据文件不存在,请检查是否已上传.",0)lua_exit();end
endfunction iphone6_work(filename)local file = userPath().."/res/".. filenamelocal bool = exists(file) --检测指定文件是否存在if bool thendialog("iPhone 6 P/6SP/7P/8P  分辨率:分辨率:1242x2208")elseifdialog(filename .. " 数据文件不存在,请检查是否已上传.",0)lua_exit();end
endfunction iphone8p_work()dialog("iPhone 6 P/6SP/7P/8P  分辨率:分辨率:1242x2208")
end-- -- --执行主线任务
if 任务 == "Imagess群发信息" then--启动应用  0:启动成功 1:启动失败r = runApp("com.apple.MobileSMS");mSleep(3000);if r == 0 then -- 启动成功则执行主线任务()elsecloseApp("com.apple.MobileSMS")dialog("应用启动失败",3);end
end

  lib.lua代码示例:

--解锁屏幕密码
function unlock_iphone()--如果要在设备自启动时解锁屏幕直接使用 unlockDevice 函数即可sysver = getOSVer();--获取系统版本local t = strSplit(sysver,".")flag = deviceIsLock();if flag == 0 then--dialog("未锁定",3);toast("iPhone屏幕锁未锁定")elseif tonumber(t[1]) >= 10 thendoublePressHomeKey()unlockDevice();--按一次 Home 键mSleep(20)pressHomeKey(0);pressHomeKey(1)mSleep(1000)elsepressHomeKey(0);pressHomeKey(1)--解锁屏幕unlockDevice();mSleep(1000)end
end--获取IOS设备分辨率
function get_ios_version(width, height)if width == 640 and height == 960 then          --iPhone 4,4S, iPod touch 4--iPhonedialog("iPhone 4,4S, iPod touch 4 \n".."分辨率:640x960")return "640x960"elseif width == 640 and height == 1136 then     --iPhone SE, 5, 5S, iPod touch 5--dialog("iPhone SE, 5, 5S, iPod touch 5 \n".."分辨率:640x1136")return "640x1136"elseif width == 750 and height == 1334 then     --iPhone 6(S)/7/8-- dialog("iPhone 6(S)/7/8 \n".."分辨率:750x1334")return "750x1334"elseif width == 1242 and height == 2208 then     --iPhone 6 P/6SP/7P/8P--dialog("iPhoneiPhone 6 P/6SP/7P/8P \n".."分辨率:1242x2208")return "1242x2208"elseif width == 1225 and height == 2436 then     --iPhone X--dialog("iPhoneiPhoneiPhone X \n".."分辨率:1225x2436")return "1225x2436"elseif width == 828 and height == 1792 then     --iPhone XR/11--dialog("iPhone XR/11 \n".."分辨率:828x1792")return "828x1792"elseif width == 1242 and height == 2668 then     --iPhone XS Max/11 Pro Max--dialog("iPhone XS Max/11 Pro Max \n".."分辨率:1242x2668")return "1242x2668"elseif width == 1125 and height == 2436 then     --iPhone XS/11 Pro--dialog("iPhone XS/11 Pro \n".."分辨率:1125x2436")return "1125x2436"end
end--检测指定文件是否存在
function exists(file_name)local f = io.open(file_name, "r")if f ~= nil thenreturn true and f:close()elsereturn falseend
end--将指定文件中的内容按行读取
function read_file(path)local file = io.open(path,"r");if file thenlocal _list = {};for l in file:lines() dotable.insert(_list,l)endfile:close();return _listend
end-- 读取取txt文件中一行数据内容
function readFile_one()local file = userPath().."/res/conntent.txt"local bool = exists(file) --检测指定文件是否存在if bool thenlocal list = read_file(file)--将指定文件中的内容按行读取; 返回 table/nil 文件内容if #list > 0 then            -- #表示取长度for  i=1, #list,1  do--dialog(string.lower(list[i]))return string.lower(list[i])endendelsedialog("话术内容文件 conntent.txt 不存在,请检查是否已上传.",0)lua_exit();end
end--读取txt文件中所有的数据内容
function readFile_all()local file = userPath().."/res/conntent.txt"local bool = exists(file) --检测指定文件是否存在if bool thenlocal f = io.open(file,'r')local content = f:read('*all')--dialog(content)f:close()return contentelsedialog("话术内容文件 conntent.txt 不存在,请检查是否已上传.",0)lua_exit();end
end--生成随机数
function randomStr(str, num)local reStr ='';math.randomseed(tostring(os.time()):sub(5):reverse());for i = 1, num dolocal getStr = math.random(1, string.len(str));reStr = reStr .. string.sub(str, getStr, getStr);endreturn reStr;
end--点击操作
function click(x, y, s)local s=s or niltouchDown(0,x,y)mSleep(50)touchUp(0,x,y)
end--连续滑动
function clickMove(x1,y1,x2,y2,n)local w = math.abs(x2-x1);local h = math.abs(y2-y1);touchDown(0,x1,y1);mSleep(50);if x1 < x2 thenw1 = n;elsew1 = -n;endif y1 < y2 thenh1 = n;elseh1 = -n;endif w >= h thenfor i = 1 , w,n dox1 = x1 + w1;if y1 == y2 thenelsey1 = y1 + math.ceil(h*h1/w);endtouchMove(0,x1,y1);mSleep(10);endelsefor i = 1 ,h,n doy1 = y1 + h1;if x1 ==x2 thenelsex1 = x1 + math.ceil(w*w1/h);endtouchMove(0,x1,y1);mSleep(10);endendmSleep(50);touchUp(0,x1,y1);
end

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

 

 

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

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

 


 

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

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

相关文章

IDEA Spring MVC配置.

参考1 https://blog.csdn.net/qq_74329022/article/details/138326488 示例 省赛 easyspring 配置。

专业数据恢复软件iFindDataRecoveryv9.2.3 绿色便携版

睿共享*关注我 前言 iFinD Data Recovery一款特别实用的数据找回工具,它很厉害,能帮你在SSD硬盘和Windows10系统上找回丢失的数据。而且,它还能深度扫描并恢复各种主流数码相机里的RAW格式照片,速度超快,用起来也很稳定顺畅,就算是新手也能轻松上手使用。 安装环境 [名称…

【Rive】Android与Rive交互

1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationViewandroid:id="@+id/rive_view"android:layout_width="match_parent"android:layout_height="match_parent"android:adjustViewBounds=&q…

【Rive】混合动画

1 混合动画简介 ​ 【Rive】动画 中介绍了 Rive 中动画的基础概念和一般动画的制作流程,本文将介绍混合动画的基础概念和一般制作流程。Unity 中混合动画介绍详见→ 【Unity3D】动画混合。 ​ 混合动画是指同一时刻多个动画按照一定比例同时执行,这些动画控制的动画参数…

Command-line Environment

Command-line Environment 任务控制 shell会使用UNIX提供的信号机制去执行进程间的通信,进程收到信号的时候,会基于信号改变其执行 停止 停止任务:^c 信号:SIGINT在进行find遍历目录时,使用^c,发出SIGINT到该进程,停止了该任务 课程中提供了一个脚本,忽略了SIGINT信号的…

【嵌入式开发】探讨下PC端的BLE开发

目前在嵌入式设备端,实现了不少ble的功能。比如音频传输,图片传输。一般要方便演示,需要开发个对应的手机app。但是我又是很偷懒的人。想着,python这个工具这么强大,在PC端可以用python几行代码就实现掉吧? 说干就干! 根据同事的推荐,用了python的bleak蓝牙库。 我是在…

Jmeter 修改Sampler result 结果信息

首先说一下,jmeter的Sampler result是什么? Jmeter 的Samplers result 是jmeter在向服务器发送请求后,接收到服务器响应的基本信息的展示,如 sample 的开始请求时间、发送的内容大小、基于协议的响应状态码和响应消息等信息。 什么是基于协议的响应状态码和响应消息。比如h…

Shell Script

Shell Script 赋值操作 foo=bar echo $foo注意: 不要使用空格分开shell 将会把foo当作一个程序 转义 Bash通过使用和""来定义字符串 ""会将字符串中的变量转义 echo "String is $foo"会将字符串中的变量原样输出 echo String is $foo函数 函数内…

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

聊一聊 C#后台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

offset explorer如何安装?附获取方式

前言 大家好,我是小徐啊。我们在Java开发的时候,有时候需要进行大数据的开发,或者需要使用消息队列,这个时候,就需要用到kafka这个组件了。而对于我们平常运维来说,最好有一个可视化的连接kafka的工具。今天小徐就来介绍一款连接Kafka的工具,是offset explorer,介绍下w…

NUMA的取舍与优化设置

NUMA的取舍与优化设置在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%;在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能。 安装numactl: #yum install numactl -y #numastat 等同于 cat /sys/devices/system/node/node0/numa…