forked from carrydela/autoClaude
84 lines
3.3 KiB
Python
84 lines
3.3 KiB
Python
import time
|
||
import random
|
||
import string
|
||
|
||
from config import MAIL_SYSTEMS
|
||
from core.mail_service import MailPool, extract_magic_link
|
||
from core.stripe_token import StripeTokenizer
|
||
from core.gift_checker import GiftChecker
|
||
from core.claude_auth import attack_claude, finalize_login
|
||
|
||
|
||
# --- 主流程 (The Ritual) ---
|
||
if __name__ == "__main__":
|
||
# 1. 初始化邮箱系统池
|
||
mail_pool = MailPool(MAIL_SYSTEMS)
|
||
|
||
if mail_pool.count == 0:
|
||
print("[-] 没有可用的邮箱系统,退出。")
|
||
exit(1)
|
||
|
||
print(mail_pool.info())
|
||
|
||
# 2. 生成随机邮箱并注册
|
||
random_prefix = ''.join(random.choices(string.ascii_lowercase + string.digits, k=10))
|
||
target_email, mail_sys = mail_pool.create_user(random_prefix)
|
||
|
||
if target_email and mail_sys:
|
||
# 3. 发送 Magic Link
|
||
if attack_claude(target_email):
|
||
|
||
# 4. 等待并提取链接(使用创建邮箱时对应的系统)
|
||
email_content = mail_sys.wait_for_email(target_email)
|
||
|
||
if email_content:
|
||
magic_link = extract_magic_link(email_content)
|
||
if magic_link:
|
||
print(f"[+] 捕获 Magic Link: {magic_link}")
|
||
|
||
# --- 终极步骤:登录获取 Account ---
|
||
account = finalize_login(magic_link)
|
||
|
||
if account:
|
||
print("\n" + "="*50)
|
||
print(f"[+] REGISTERED SUCCESSFUL")
|
||
print(f"Email: {account.email}")
|
||
print(f"SessionKey: {account.session_key}")
|
||
print(f"OrgUUID: {account.org_uuid}")
|
||
|
||
with open("accounts.txt", "a") as f:
|
||
f.write(f"{account.email}|{account.session_key}|{account.org_uuid}\n")
|
||
|
||
print("="*50 + "\n")
|
||
|
||
# --- CC Checker 流程 ---
|
||
cards = []
|
||
try:
|
||
with open("cards.txt", "r") as f:
|
||
for line in f:
|
||
line = line.strip()
|
||
if line and not line.startswith("#"):
|
||
cards.append(line)
|
||
print(f"[*] 从 cards.txt 读取到 {len(cards)} 张卡片")
|
||
except FileNotFoundError:
|
||
print("[*] 未找到 cards.txt,跳过 CC Checker")
|
||
|
||
if cards:
|
||
tokenizer = StripeTokenizer(account.user_agent)
|
||
checker = GiftChecker(account)
|
||
|
||
for card_line in cards:
|
||
cc, mm, yy, cvc = card_line.split("|")
|
||
pm_id = tokenizer.get_token(cc, mm, yy, cvc)
|
||
|
||
if pm_id:
|
||
result = checker.purchase(pm_id)
|
||
print(f"Card: {cc[:4]}... -> {result}")
|
||
time.sleep(2)
|
||
else:
|
||
print("[-] 获取 Account 失败。")
|
||
else:
|
||
print("[-] 邮件内容中未找到链接,可能格式变了?")
|
||
else:
|
||
print("[-] 任务失败:未收到邮件。")
|