首页 > 其他分享 >协议通道版iMessage蓝号检测,iMessages数据筛选,无痕检测是否开启iMessage服务

协议通道版iMessage蓝号检测,iMessages数据筛选,无痕检测是否开启iMessage服务

时间:2025-01-19 13:54:13浏览次数:1  
标签:蓝号 检测 iMessage element common file browser

一、实现iMessage数据检测的两种方式:
1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。
2.编写程序控制Mac os/iphone上自带的iMessage应用进行验证(自动无痕迹检测,无需人工干预),将数据自动填充到号码框之后,如果捕获到失败则不是iMessage账号,捕获到成功则把数据保存下来。

 

二、iMessage蓝号检测协议分析
/* 注意:检测不同国家手机号需要在手机号的前缀 +国家代码即可,自动检测导入的txt数据,蓝号数据自动保存,最新升级版参考文章: https://www.cnblogs.com */
无痕检测是否imessge蓝号协议代码如下:

'''
    协议通道版iMessage蓝号检测
'''
import time
import os
import urllib.request
import common
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


# 初始化参数设置
def init():
    options  =  Options()
    options.binary_location = "./chrome.exe"
    options.add_argument('--ignore-certificate-errors')
    options.add_argument('--ignore-ssl-errors')
    options.add_argument("--log-level=3")
    options.add_experimental_option("excludeSwitches", ["enable-logging"])
    options.add_argument(f"user-agent=common.get_rand_ua()")    
    options.add_argument('--headless')

    # 创建服务
    service = Service(executable_path="./chromedriver.exe")
    driver =  webdriver.Chrome(service=service, options=options)
    driver.set_window_position(0,0)
    driver.set_window_size(560,820)
    driver.get(check_URL)
    driver.implicitly_wait(5)
    return driver
    
        
# 任务处理
def Check(file_txt, ini_file, result_path, result_file_name):
    if os.path.exists(file_txt) == True:
    
        #启动浏览器
        browser = init()
        
        with open(file_txt, 'r') as f:
            lines = f.readlines()
            line_count = len(lines)
            common.log(f"待检测数据文件 {file_txt} 总数量: {line_count} 条")
            index = int(common.read_ini(ini_file))
            tag = True    
            while tag:
                #根据索引取出数据
                Email_data = lines[index].strip()
                common.log(Email_data + " 检测中...")

                email_locator = (By.CLASS_NAME, 'generic-input-field.form-textbox-input.iforgot-apple-id.force-ltr')
                email_element = common.is_element_present(browser, email_locator)
                
                image_data_locator = (By.XPATH, '//idms-captcha//div//div//img')
                image_data_element = common.is_element_present(browser, image_data_locator)
                
                capth_locator = (By.CLASS_NAME, 'generic-input-field.form-textbox-input.captcha-input')
                capth_element = common.is_element_present(browser, capth_locator)
                    
                submit_locator = (By.XPATH, '//idms-toolbar//div//div//div//button')
                submit_element = common.is_element_present(browser, submit_locator)
                if     email_element == True and image_data_element == True and capth_element == True and submit_element == True :                                
                    time.sleep(0.5)
                    browser.find_element(By.CLASS_NAME, 'generic-input-field.form-textbox-input.iforgot-apple-id.force-ltr').send_keys(Email_data)

                    # 获取验证码数据并识别
                    image_element = browser.find_element(By.CSS_SELECTOR, '.img-wrapper > img:nth-child(1)')
                    Verification_code = common.get_verify_code(image_element.screenshot_as_png)
                                        
                    time.sleep(0.5)
                    browser.find_element(By.CLASS_NAME, 'generic-input-field.form-textbox-input.captcha-input').send_keys(Verification_code)  

                    time.sleep(0.5)    
                    browser.find_element(By.XPATH, '//idms-toolbar//div//div//div//button').click()
                
                    time.sleep(1)
                    button_locator = (By.CSS_SELECTOR, 'button.button:nth-child(2) > div:nth-child(1)')
                    button_element = common.is_element_present(browser, button_locator)
                    if button_element == True :
                        # 记录当前检测的数据的索引
                        index += 1
                        common.write_ini(ini_file, index)
                        
                        # 记录检测成功的数据
                        common.wirte_append_txt(result_path, result_file_name, Email_data + "---" + "OK\n")
                        common.log(Email_data + ' 已开通')            
                    else:    
                        err_mess_locator = (By.CLASS_NAME, 'form-message-wrapper.std-error span.form-message')
                        err_mess_lement= common.is_element_present(browser, err_mess_locator)
                        if err_mess_lement == True :
                            common.log('验证码识别错误,重新检测中...')                
                        else:
                            index += 1
                            common.write_ini(ini_file, index)
                            # 记录检测成功的数据
                            common.wirte_append_txt(result_path, result_file_name, Email_data + "---" + "Fail\n")
                            common.log(Email_data + ' 未开通')
                        
                    if index >= line_count:
                        common.write_ini(ini_file, 0)
                        common.log(f'{file_txt}, 文件的{line_count}条数据已全部检测完毕!')    
                        
                        tag = False
                        break                
                else:
                    common.log('API接口加载失败,重新请求中...')
                browser.quit()
                time.sleep(0.5)
                browser = init()                
    else:
        common.log(f"待检测的 {file_txt} 文件不存在!")
                    


if __name__ == '__main__':
    common.banner()
    Check('data.txt', 'Config.ini', '检测结果', '检测结果.txt')

源码编译后运行效果图(程序可以在WindowsMac/Linux等系统下多开同时运行,全自动检测无需人工看守,检测结果自动保存.)

 

标签:蓝号,检测,iMessage,element,common,file,browser
From: https://www.cnblogs.com/codtina/p/18679537

相关文章

  • Java 批量检测微信小程序封禁状态
    项目代码importjava.io.InputStreamReader;importjava.io.BufferedReader;importjava.net.HttpURLConnection;importjava.net.URL;importorg.json.JSONObject;publicclassMiniProgramStatusChecker{//要检查的小程序AppID列表privatestatic......
  • 手把手教你完成YOLOv11 PySide6目标检测界面搭建,使用Qt6设计YOLOv11检测系统,实现图片
    摘要目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合YOLOv11与PySide6,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片......
  • NB!一款基于java开发的漏洞检测工具,集合了泛微、用友、大华、海康、致远、红帆、万户
    1、工具介绍基于https://github.com/yhy0/ExpDemo-JavaFX上添加poc2、工具下载链接:工具下载:工具下载3、新增检测漏洞用友NC-Cloud系统接口getStaffInfo存在SQL注入漏洞用友U8-CloudReleaseRepMngAction存在SQL注入漏洞复现(CNVD-2024-33023)用友U8-CRM系统getDeptName......
  • js逆向笔记 绕过某网站开发者工具检测
    js逆向笔记绕过某网站开发者工具检测在这篇博客中,我将分享我在逆向分析爱企查时的一些发现与绕过技巧。最开始,我是偶然发现了这个网站,它在正常使用浏览器按下F12打开开发者工具时,似乎有某种方式禁用了开发者工具。不过,我没有放弃,继续从浏览器的右上角点击手动打开开发者......
  • 【日志分析】从手动解析到智能检测:日志异常模式挖掘全解
    网罗开发(小红书、快手、视频号同名)  大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源......
  • 2024~2025学年第一学期罗智市高一质量检测游记
    Day-1沉浸式背政治,感觉其他科目要完蛋了。Day0今天考化学、地理、政治、生物。?不是化学怎么好难,拼尽全力无法战胜,写不完一点,但是出考场之后发现化竞哥们也空了挺多,感觉这次能及格都有年段前\(50\)。地理选择题感觉挺简单,但是大题怎么考了和平精英,没玩过感觉吃大亏。政治......
  • 电路研究8——设计规则检测
        板图基本画完了,不过检查时候一堆问题。                这个错误每次装软件都会出现,而且详细的,我老是忘了怎么设置。比如器件间距,各种检测错误,实际上如果只是画板子的话,这些小问题可以忽略,不过看着真正的问题有没找出来,所以这次就详细的贴出来吧......
  • YOLOv11改进策略【Neck】| NeurIPS 2023 融合GOLD-YOLO颈部结构,强化小目标检测能力
    一、本文介绍本文主要利用GOLD-YOLO中的颈部结构优化YOLOv11的网络模型。GOLD-YOLO颈部结构中的GD机制借鉴了全局信息融合的理念,通过独特的模块设计,在不显著增加延迟的情况下,高效融合不同层级的特征信息。将其应用于YOLOv11的改进过程中,能够使模型更有效地整合多尺度特......
  • blackbox_exporter 如何检测端口
    blackbox_exporter可以通过TCP探测模块来检测目标主机的端口是否开放。以下是配置和使用的详细步骤。1.配置blackbox_exporter1)编辑配置文件打开blackbox_exporter的配置文件blackbox.yml,添加或修改TCP探测模块。示例配置:modules:tcp_connect:pr......
  • 【机器学习实战】kaggle 欺诈检测---如何解决欺诈数据中正负样本极度不平衡问题
    **活动发起人@小虚竹本次分享的是我在参与kaggle信贷欺诈竞赛中的一些心得,希望供大家批评与交流,也希望能有金融欺诈方向的大佬能够在评论区或者私信中指导我。本人首页包含各种kaggle竞赛中的机器学习实战内容,并附有源码,希望大家多来交流。任务描述使用机器学习模型......