越獄版和免越獄版iphone手機imessages群發,imessages簡訊,imessages推信,蘋果imessage群發實現原理 - 手機端

Apple-blog發表於2024-05-02

Apple公司全線在mac os與ios兩個作業系統上內建了FaceTime與iMessage兩個應用。完美替代運營商的簡訊與電話。並且FaceTime與iMessage的帳號不僅僅與Apple ID 繫結,同時也與使用這Apple ID的手機號碼繫結,這樣的漏洞自然給無孔不入的群發垃圾資訊商們提供了後門。這樣iPhone的iMessage時不時就能收到傳送者的垃圾iMessage,針對iMessage的群發實現,新聞稿上說是花幾分鐘寫個指令碼就可以了。經過研究終於實現了全自動控制蘋果手機來自動傳送,還可以透過群控方式實現大批次群發。

一、蘋果手機上(ios系統)實現imessages群發總結為以下幾種方式
1.透過iphone手機上自帶的快捷指令進行群發。                    (優點:入門門檻低,iphone自帶快捷指令               缺點:傳送量過多易被封ID,更換髮送資料較麻煩,手機裝置較多時,操作起來費時間。)
2.透過編寫執行於iphone手機上的指令碼來實現群發imessages簡訊            (優點:傳送速率快,無需證書籤名,一臺電腦或手機能群控N臺iphone手機 缺點:iphone手機需要越獄,群控需要付費第三方群控軟體)
3.透過編寫執行於iphone手機上的按鍵精靈指令碼實現群發imessages簡訊         (優點:傳送速率快,無需證書籤名,一臺電腦群控N臺iphone手機      缺點:iphone手機需要越獄,群控需要付費第三方群控軟體)
4.透過編寫執行於iphone手機上的app來呼叫iphone手機上的imessages應用實現群發   (優點:傳送速率快,ipa安裝包簽名證書,一臺電腦群控N臺iphone手機 缺點:iphone手機無需越獄,群控需要付費第三方群控軟體,每臺手機的證書籤名都需要付費)


二、蘋果手機透過快捷指令群發imessages簡訊
1:App Store搜尋現成的快捷指令指令碼(或開啟siri瀏覽器訪問 https://apps.apple.com/app/shortcuts/id915249334 進行下載快捷指令)
2:新增完開啟設定——快捷指令——高階———允許共享大量資料開啟
3:開啟蘋果手機 通用 中搜尋快捷指令,啟動發資訊的指令(預設是給自己手機通訊錄中的聯絡人傳送imessages簡訊)
4.電腦安裝91助手後將手機資料全部匯入到當前手機通訊錄中,啟動快捷指令,進行批次群發。

三、蘋果手機安裝imessage全自動群髮指令碼
/* iPhone手機安裝中控指令碼或群發程式來實現無人值守傳送,windows電腦上安裝群控軟體來控制全部iphone手機,實現自動傳送,更換手機序列號來實現防封app id,群控軟體一鍵群控所有的手機全自動群發 ,最新升級版本請參考博文首頁相關文章: https://www.cnblogs.com/ap16633/ */
1.windows/mac os電腦上安裝群控軟體全自動控制同區域網或廣域網下的全部手機,群控軟體給所有手機分別上傳不同或相同的傳送資料和傳送內容,不用去單獨管理手機,群控軟體全自動給所有手機安裝群發程式,自動啟動,停止群
main 主庫程式碼示例(部分核心程式碼如下):

 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輔助庫程式碼示例:

  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簡訊:
/* 透過電腦上安裝的中控(群控)軟體,首先透過群控軟體批次掃描自己的區域網或廣域網的手機裝置後,並上傳自動群發imessages指令碼,傳送的資料 phone.txt 和傳送內容conntent.txt 到中控軟體,然後使用中控(群控)軟體來批次讓所有手機裝置自動執行群髮指令碼*/
(1)windows/mac os電腦上安裝中控(群控)軟體來控制全部手機裝置。
(2)透過電腦上安裝的中控(群控)軟體批次將所有免越獄的蘋果手機或越獄的蘋果手機新增到(中控)群控端,然後透過群控軟體一鍵控制(同區域網下或USB資料線連線)全部手機自動執行群髮指令碼,使全部手機自動執行群髮指令碼進行自動群發imessages資訊。

越獄版和免越獄版iphone手機imessages群發,imessages簡訊,imessages推信,蘋果imessage群發實現原理 - 手機端越獄版和免越獄版iphone手機imessages群發,imessages簡訊,imessages推信,蘋果imessage群發實現原理 - 手機端

3.其他
注意:文中包含的指令碼程式碼、工具、系統、圖樣只作為技術學習研究,請勿作為非法用途,因違反相關規定而觸犯法律的,一切後果自負,與作者無關。
(1)蘋果手機在啟動全自動髮指令碼之前,首先手機裝置 “通用-資訊”中設定 "手機號作為傳送號" 並且關閉 "作為簡訊傳送" 功能。
(2)開啟蘋果手機的飛航模式,並設定連線Wife,透過無線或4G訊號網路去傳送iMessages資訊
(3)全自動群發imessages指令碼目前支援以下iphone手機的IOS版本(其他版本的蘋果IOS系統可以自行更改程式碼或有償定製或全套部署可聯絡紙飛機: @ap16633)

機型: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        支援

相關文章