手机版 - imessage信息群发,苹果imessages短信,imessages推信,苹果手机推信,苹果imessage群发实现原理
Apple公司全线在mac os与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。这样iPhone的iMessage时不时就能收到发送者的垃圾iMessage,针对iMessage的群发实现,新闻稿上说是花几分钟写个脚本就可以了。经过研究终于实现了全自动控制苹果手机来自动发送,还可以通过群控方式实现大批量群发。
一、苹果手机上(ios系统)实现imessages群发总结为以下几种方式
1.通过编写运行于iPhone手机上的脚本来实现群发imessages短信(发送速率快,无需证书签名,可单台手机安装脚本实现自动发送,也可以一台电脑去控制其他N台iphone手机自动群发)
2.通过编写运行于iPhone手机上的app来调用iphone手机上的imessages应用实现群发 (发送速率快,需要证书签名,可单台手机安装脚本实现自动发送,也可以一台电脑去控制其他N台iphone手机自动群发)
二、苹果手机群发脚本全自动发送
1.脚本全自动发送短信(最新升级版本请参考博文首页相关文章:)
第一种:iphone手机不多的情况下,每台手机手动安装imessage自动群发程序并上传发送数据和发送内容后,手动的一台一台手机去启动自动发送脚本即可开始全自动imessage发送。
第二种:iphone手机比较多的情况下,通过windows/mac os电脑上安装群控软件,群控软件自动控制局域网或广域网下所有的苹果手机,通过群控软件一键给全部手机全安装群发脚本(完全不用去单独管理手机),群控软件来控制所有手机设备,去自动运行群发脚本。
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短信(以下本文为演示脚本完全能够自动运行,并没有使用app id登录imessages,也没有放插SIM卡,故此显示是绿色)
3.群控软件来群控所有手机,群控软件控制全部手机自动发送,停止,群发Imessages信息。
/* 电脑上安装的群控软件,通过群控软件控制局域网或广域网的手机设备后,一件给全部手机安装群发程序,并上传发送的数据 phone.txt 和发送内容conntent.txt 到中控软件,然后使用群控软件来批量让所有手机设备自动运行群发脚本*/
注意:文中包含的脚本代码、工具、系统、图样只作为技术学习研究,请勿作为非法用途,因违反相关规定而触犯法律的,一切后果自负,与作者无关。
(1)苹果手机在启动全自动发脚本之前,首先手机设备 “通用-信息”中设置 "手机号作为发送号" 并且关闭 "作为短信发送" 功能。
(2)开启苹果手机的飞行模式,并设置连接Wife,通过无线或4G信号网络去发送iMessages信息
(3)全自动群发imessages脚本目前支持以下Iphone手机的IOS版本(其他版本的苹果IOS系统可以自行更改代码,或有偿联系定制,咨询或联系纸飞机: bf66333 )
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 可订制