# 演唱会门票软件 **Repository Path**: black--rose/ticket ## Basic Information - **Project Name**: 演唱会门票软件 - **Description**: 专业的多平台抢票工具,支持大麦网和猫眼电影,让抢票变得简单高效!欢迎感兴趣的同学交流,QQ: 3202103836 - **Primary Language**: Dart - **License**: MulanPSL-2.0 - **Default Branch**: v2 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 2 - **Created**: 2025-09-21 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎫 TicketHunter Pro (票务猎手) ## 唯一QQ: 3202103836 ## 基于 Flutter 与 Native Hook 的分布式高频交易系统 ### (Next-Gen Intelligent Ticket Scalping & Monitoring System) [![Flutter](https://img.shields.io/badge/Flutter-3.x-02569B?logo=flutter)](https://flutter.dev) [![Dart](https://img.shields.io/badge/Dart-3.x-0175C2?logo=dart)](https://dart.dev) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Architecture](https://img.shields.io/badge/Architecture-Clean-orange)](https://github.com/flutter/flutter) > **⚠️ 法律免责声明 (Legal Disclaimer)** > 本项目遵循 **MIT 开源协议**,但附加严格的使用限制。 > 仅供 **网络安全研究** 及 **协议分析** 教学使用。 --- ## 🚀 项目简介 (Introduction) **TicketHunter Pro** 不仅仅是一个抢票工具,它是基于 **混沌工程 (Chaos Engineering)** 理念构建的 **分布式高可用 (HA) 交互系统**。我们致力于解决极端网络环境下的 **CAP 定理** 挑战,通过 **自适应神经流控** 算法,实现毫秒级的响应与决策。 在传统脚本还在使用简单的 `while(true)` 轮询时,TicketHunter Pro 已经引入了 **金融级高频交易 (HFT)** 的架构思想。我们在移动端的网络层,实现了 **零拷贝 (Zero-Copy)** 数据处理与 **内核级 (Kernel-Level)** 信号拦截。 --- ## 🛡️ 核心技术模块与代码追溯 (Core Modules & Traceability) 我们将“黑科技”与源代码一一对应,确保技术的可追溯性: | 核心模块 | 源码位置 (Traceability) | 技术术语 (Marketing Term) | 功能描述 (Technical Truth) | | :--- | :--- | :--- | :--- | | **Shield Breaker** | `lib/services/shield_breaker_service.dart` | **自适应神经流控**
(Adaptive Neural Flow Control) | 基于状态机的熔断器模式。当检测到 403/429 时,通过 Jitter 算法自动计算退避时间,实现智能降级。 | | **Hook Manager** | `lib/services/hook_manager.dart`
`android/.../NativeHookManager.java` | **生物特征虚拟化引擎**
(Biometric Virtualization) | 通过 Native Hook (JNI) 拦截 `getDeviceId` 等系统调用,动态注入随机指纹,对抗 RASP 防御。 | | **Signature Service** | `lib/services/signature_service.dart` | **量子多态签名隧道**
(Quantum Polymorphic Signature) | 完美复刻 App 端的签名算法(MD5/SHA1 + Salt),包含纳秒级时间戳与空间坐标扰动,通过服务端校验。 | | **Protocol Mesh** | `lib/services/damai_api_service.dart`等 | **异构协议网状网关**
(Heterogeneous Protocol Mesh) | 统一抽象适配器,抹平 Damai/Maoyan/Xiudong 等不同平台的私有协议差异。 | | **Anti-Detection** | `lib/services/anti_detection_service.dart` | **非侵入式图灵测试对抗**
(Turing Test Adversarial) | 模拟人类操作轨迹(点击、滑动),规避行为验证码检测。 | --- ## 🛠️ 技术栈 (Tech Stack) 本项目采用工业级标准构建,确保系统的鲁棒性与可扩展性: | 技术领域 | 组件/版本 | 用途 | | :--- | :--- | :--- | | **UI Framework** | Flutter 3.x | 跨平台高性能渲染引擎(Impeller) | | **Language** | Dart 3.x (Null Safety) | 强类型保障的业务逻辑开发 | | **State Management** | Provider 6.x | 响应式状态管理与依赖注入 | | **Network** | Dio 5.x + HTTP/2 | 支持长连接复用与拦截器链 | | **Security** | Crypto 3.x | 实现 HMAC/SHA256 等银行级加密算法 | | **Storage** | FlutterSecureStorage | 密钥与 Token 的安全持久化存储 | | **IPC** | Platform Channels | Dart 与 Native 层的高效二进制通信 | --- ## 🏭 自动化构建 (Automated Build Pipeline) 本项目根目录下已内置工业级的一键编译脚本,自动处理环境检测、依赖安装与 AOT 编译。 ### 1. 脚本功能 (Features) * **环境自检**: 自动检测 Java JDK, Flutter SDK, Android SDK。 * **依赖注入**: 自动执行 `flutter pub get` 与 `build_runner` 代码生成。 * **智能编译**: 针对不同 CPU 架构 (arm64-v8a, armeabi-v7a) 生成独立的优化包。 * **安全加固**: 编译过程中自动注入混淆配置。 ### 2. 使用方法 (Usage) #### Windows 用户 直接双击运行根目录下的 `build.bat`,或在命令行执行: ```cmd .\build.bat ``` #### Linux / macOS 用户 在终端执行根目录下的 Shell 脚本: ```bash chmod +x build.sh ./build.sh ``` *构建产物将输出至: `mobile_app/build/app/outputs/flutter-apk/`* --- ## 💻 核心代码预览 (Code Preview) ### 1. 分布式并发调度 (Distributed Scheduling) *源码位置: `lib/providers/ticket_hunter_provider.dart`* ```dart /// 启动高频交易引擎 Future startHunting({ required Show show, required List accounts, }) async { // 初始化神经流控状态机 _status = TicketHunterStatus.running; // 并发执行多账户抢购任务 (Map-Reduce 思想) final results = await Future.wait( accounts.map((account) => _ticketService.batchSubmitOrders( account: account, show: show, strategy: SubmissionStrategy.aggressive, // 激进模式 )) ); // 异步处理支付回调 if (results.any((r) => r.success)) { await _triggerPaymentProtocol(results.firstWhere((r) => r.success)); } } ``` ### 2. 支付协议自动轮询 (Payment Polling) *源码位置: `lib/services/payment_service.dart`* ```dart /// 支付状态机轮询 void _startPaymentPolling(String orderId) { // 使用指数退避算法减少服务端压力 int pollCount = 0; Future.doWhile(() async { if (pollCount++ > MAX_RETRIES) return false; final status = await _queryPaymentStatus(orderId); if (status == 'PAID') { _notifySuccess(); return false; // 终止轮询 } // 动态调整轮询间隔 (Jitter) await Future.delayed(Duration(milliseconds: 500 + Random().nextInt(1000))); return true; }); } ``` --- ## ⚙️ 核心配置文件详解 (Configuration Reference) 本项目采用多层级配置策略,确保编译、运行、安全策略的精细化控制。以下三大核心配置文件均可追溯其技术来源: ### 1. `pubspec.yaml` - 项目依赖清单 (Dependency Manifest) **位置**: `mobile_app/pubspec.yaml` **功能**: 定义 Dart/Flutter 项目的所有外部依赖库及其版本锁定策略。 | 依赖类别 | 关键库 | 版本 | 技术解读 | | :--- | :--- | :--- | :--- | | **状态管理** | `provider` | ^6.1.1 | 实现 **MVVM** 架构的 ViewModel 层,支持响应式数据流 (Reactive Streams) | | **网络引擎** | `dio` | ^5.3.2 | 基于 **Interceptor Chain** 的 HTTP/2 客户端,支持请求加密与签名注入 | | **加密算法** | `crypto`, `encrypt`, `pointycastle` | ^3.0+ | 提供 **HMAC-SHA256**, **RSA-2048**, **AES-256** 等银行级加密能力 | | **设备指纹** | `device_info_plus` | ^9.1.0 | 获取 Android/iOS 的真实 IMEI, IMSI, WiFi MAC 等硬件指纹(需 Hook 改写) | | **本地存储** | `sqflite`, `shared_preferences` | ^2.3+ | SQLite 数据库 + KV 存储,支持 **Write-Ahead Logging (WAL)** 模式 | **高频交易相关配置**: ```yaml dependencies: dio: ^5.3.2 # 支持 HTTP/2 多路复用 (Multiplexing),减少 TCP 握手延迟 logger: ^2.0.2+1 # 分布式日志追踪,支持 OpenTelemetry 标准 ``` **如何修改版本**: 1. 编辑 `pubspec.yaml` 后执行: ```bash flutter pub get flutter pub upgrade # 升级到最新兼容版本 ``` 2. 锁定具体版本以避免生产环境依赖漂移: ```yaml crypto: 3.0.3 # 移除 ^ 符号强制使用该版本 ``` --- ### 2. `build_config.yaml` - 编译优化配置 (Build Optimization) **位置**: `mobile_app/build_config.yaml` **功能**: 定义 AOT 编译、代码混淆、反检测注入等高级编译策略。 | 配置项 | 默认值 | 忽悠话术 (Marketing) | 技术实质 (Truth) | | :--- | :--- | :--- | :--- | | `aot_optimization_level: aggressive` | aggressive | **量子编译加速** (Quantum Compilation) | Flutter 的 AOT 编译优化等级,提升启动速度约 30% | | `obfuscation.enabled: true` | true | **多态混淆引擎** (Polymorphic Obfuscation) | 将类名、函数名混淆为无意义字符(如 `a0`, `b1`),对抗逆向工程 | | `randomize_class_names: true` | true | **动态字节码变形** (Dynamic Bytecode Morphing) | 每次编译生成不同的符号表,防止特征码匹配 | | `ssl_pinning_bypass.mode` | system_cert_trust | **证书信任链重构** (Certificate Chain Rewrite) | 通过 Hook `SSL_CTX_set_verify` 绕过双向认证 | | `ndk_abi_filters` | arm64-v8a, armeabi-v7a | **异构架构并行编译** (Heterogeneous Parallel Build) | 针对不同 CPU 架构生成优化的 Native 库 | **关键安全配置**: ```yaml security: native_integrity_check: true # 启用 SO 库签名校验,防止二次打包 device_fingerprint_seed: "dynamic" # 每次启动生成随机设备 ID 种子 ssl_pinning_bypass: fallback: "hook_openssl" # 主策略失败时 Hook OpenSSL 底层函数 ``` **如何自定义编译策略**: - **调试模式** (开发时): ```yaml compilation: obfuscation: enabled: false # 关闭混淆以便调试 ``` - **极致性能模式** (生产环境): ```yaml compilation: aot_optimization_level: extreme # 最大化优化(编译时间显著增加) ``` --- ### 3. `config.json` - 运行时动态配置 (Runtime Config) **位置**: `mobile_app/assets/config/config.json` **功能**: 存储 API 密钥、业务参数、功能开关等敏感信息。**此文件必须加密存储或在部署时注入**。 | 配置模块 | 字段 | 作用 | 风险提示 | | :--- | :--- | :--- | :--- | | **RSA 密钥对** | `rsa.publicKey` / `privateKey` | 用于与服务端的加密通信,防止中间人攻击 (MITM) | 🔴 **私钥泄露将导致签名被仿冒** | | **验证码识别** | `captcha.apiUrl` / `apiKey` | 调用第三方 OCR 服务(如打码平台)破解图形验证码 | 🟡 需确保 API Key 未被滥用(可能被封禁) | | **短信接码** | `sms.apiUrl` / `apiKey` | 自动获取手机验证码(接码平台) | 🔴 **使用虚拟号码可能违反平台协议** | | **业务逻辑** | `app.maxRetries` | 抢票失败后的最大重试次数,防止死循环消耗流量 | ✅ 建议设置为 `3-5` | | | `app.enableAntiDetection` | 是否启用反检测模块(Hook 设备指纹) | 🟡 关闭后无法绕过风控系统 | **典型配置示例**: ```json { "app": { "maxRetries": 5, // 最大重试 5 次 "retryDelay": 1000, // 每次重试间隔 1 秒(避免触发频控) "requestTimeout": 15000, // 单个请求超时 15 秒 "enableAntiDetection": true, // 启用反检测(必须为 true) "enableRootDetection": true, // 检测设备是否被 Root(用于自我保护) "logLevel": "info" // 日志级别 (debug/info/warn/error) } } ``` --- ## 🎯 支持平台 (Supported Platforms) 目前已适配以下主流票务平台(仅作为协议分析靶场): * ✅ **大买 (Damai)** * MTOP 协议分析与签名逆向 * 支持 HTTP/2 长连接保活 * ✅ **🐱眼 (Maoyan)** * WebSocket 实时库存监听 * 多域名协议配置与加密参数生成 * ✅ **秀洞 (Xiudong)** * TCP 窗口调优,优化弱网环境下的抢票成功率 ## ⚠️ 使用声明 - 本工具仅供学习和研究使用 - 请遵守各平台的使用条款和法律法规 - 使用本工具产生的任何后果由用户自行承担 - 建议合理使用,避免对平台造成过大压力 - 唯一QQ: 3202103836 **提示**: 此分支代码未更新, 唯一QQ: 3202103836,使用前请先熟悉各平台的抢票规则,合理配置参数以提高成功率!