Ch4120N/ChComboParser

GitHub: Ch4120N/ChComboParser

一款基于C++17的多线程命令行工具,用于高速解析、去重、过滤和提取海量凭证组合列表。

Stars: 0 | Forks: 0

Version C++17 Platform License Author

⚡ ChComboParser

终极高性能、多线程 Combo 列表解析器与凭证提取工具
极速的 C++17 实用工具,用于解析、清理、去重和过滤 user:pass combo 列表。

快速开始用法安装说明功能下载二进制文件

## 📝 概述 **ChComboParser** 是一款采用现代 C++17 编写的、企业级、多线程命令行工具。专为网络安全社区设计,可快速解析海量的凭证组合列表(combos)。无论您需要**从 combo 列表中提取密码**、**分离用户名和密码**、**移除重复凭证**,还是**按长度过滤字典**,ChComboParser 都能在几秒钟内处理数 GB 的数据,且内存开销极低。 该工具由 **[Ch4120N](https://github.com/Ch4120N)** 开发,在处理数百万行的凭证数据转储时,彻底告别了运行缓慢的单线程 Python 或 Bash 脚本。 ## 🎯 ChComboParser 适用于谁? 该工具是攻击和防御安全工具箱的重要组成部分,专为以下人员打造: - 🛡️ **渗透测试人员与红队成员:** 快速清理、格式化和去重 combo 列表,用于授权的密码喷洒和凭证填充评估。 - 🔍 **OSINT 与威胁情报分析师:** 处理海量泄露数据库以提取特定字段(例如,分离密码以研究破解模式,或提取邮箱/域名)。 - 🏢 **蓝队成员与系统管理员:** 对照已知的违规数据库审计内部 Active Directory 用户目录,快速识别被盗用的账户。 - 🐛 **Bug Bounty 猎人:** 在授权范围内,高效地过滤并准备自定义字典,以测试弱密码、默认密码或重复使用的凭证。 - 🎓 **CTF 选手:** 在争分夺秒的夺旗(CTF)比赛中快速解析和 manipulate 凭证格式。 ## ✨ 核心功能 - 🚀 **极速多线程:** 自动检测 CPU 核心,并将文件切分为优化的内存块进行并行处理。几秒钟内即可处理数百万行。 - 🧹 **智能去重:** 基于高速 hash-set 进行去重,确保您最终的字典和 combo 列表 100% 干净。 - 📏 **高级长度过滤:** 通过设置最小/最大字符串长度约束,轻松过滤掉弱密码(例如,仅保留 8-64 个字符的密码)。 - 🔤 **即时转换:** 将提取的字段转换为小写或大写,并自动 trim 空白字符,无需使用 `tr` 或 `sed` 等辅助工具。 - 🔀 **灵活的分隔符与索引:** 支持任何分隔符(`:`、`@`、`|`、`;`、`,`),并允许从任意列索引提取数据(例如,从 `email:pass:recovery` 中提取第 3 个字段)。 - 📊 **实时分析:** 精美的 CLI 进度条和全面的运行后统计信息(已处理行数、跳过行数、吞吐速度)。 - 💾 **零锁架构:** 采用 thread-local 存储,确保在解析阶段零 mutex 争用,最大化 CPU 利用率。 ## 🚀 快速开始 ### 下载预编译二进制文件(无需安装) 从 **[Releases 页面](https://github.com/Ch4120N/ChComboParser/releases)** 获取适用于您操作系统的最新版本。 ``` # Windows (Command Prompt / PowerShell) ChComboParser-Windows-x64.exe combos.txt passwords.txt : 1 # Linux / macOS (Terminal) chmod +x ChComboParser-Linux-x64 ./ChComboParser-Linux-x64 combos.txt passwords.txt : 1 ``` ## 🛠️ 安装说明与从源码编译 如果您更喜欢从源码编译,ChComboParser 是 100% 跨平台的。 ### 前置条件 - **C++17 编译器:** GCC 9+、Clang 9+ 或 MSVC 2019+ - **CMake:** 版本 3.14 或更高 ### 🐧 Linux & 🍎 macOS ``` git clone https://github.com/Ch4120N/ChComboParser.git cd ChComboParser mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) # Use $(sysctl -n hw.ncpu) on macOS ``` ### 🪟 Windows (Visual Studio) 打开 **x64 Native Tools Command Prompt**: ``` git clone https://github.com/Ch4120N/ChComboParser.git cd ChComboParser mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release cmake --build . --config Release ``` ## 📖 用法与命令示例 ### 基本语法 ``` ChComboParser [OPTIONS] ``` ### 常见工作流 **1. 提取密码(标准 `user:pass` 格式):** 提取以冒号分隔的第二个字段(索引为 1)。 ``` ./ChComboParser combos.txt passwords.txt : 1 ``` **2. 提取用户名 / 邮箱:** 提取第一个字段(索引为 0)。 ``` ./ChComboParser combos.txt usernames.txt : 0 ``` **3. 清理并去重海量字典:** 自动对输出进行排序并移除所有重复项。 ``` ./ChComboParser dirty_list.txt clean_list.txt : 1 -s ``` **4. 按密码长度过滤(例如,遵循企业合规策略):** 提取严格介于 8 到 64 个字符之间的密码。 ``` ./ChComboParser combos.txt strong_pass.txt : 1 -m 8 -M 64 ``` **5. 解析复杂格式(例如,`email|password|security_answer`):** 使用竖线 `|` 作为分隔符,提取安全问题答案(索引为 2)。 ``` ./ChComboParser complex_dump.txt answers.txt "|" 2 ``` **6. 不写入磁盘直接统计唯一条目:** 在仅内存模式下运行,并输出详细的统计信息。 ``` ./ChComboParser combos.txt - : 1 -c -v ``` ## ⚙️ CLI 参数参考 | 参数 | 描述 | 默认值 | | :--- | :--- | :--- | | `-t, --threads ` | worker 线程数 | 自动检测 | | `-d, --no-dedup` | 禁用去重 | 开启 | | `-s, --sort` | 按字母顺序对输出排序 | 关闭 | | `-c, --count` | 仅统计,不写入输出文件 | 关闭 | | `-m, --min-length ` | 输出字符串的最小长度 | 0 (无限制) | | `-M, --max-length ` | 输出字符串的最大长度 | 0 (无限制) | | `--lowercase` | 将输出转换为小写 | 关闭 | | `--uppercase` | 将输出转换为大写 | 关闭 | | `--no-trim` | 不 trim 字段中的空白字符 | Trim 空格 | | `--keep-empty` | 保留提取出的空字段 | 跳过空值 | | `-v, --verbose` | 显示详细统计信息 | 关闭 | | `-q, --quiet` | 抑制所有非关键输出 | 关闭 | | `--no-progress` | 禁用进度条 | 开启 | | `-h, --help` | 显示帮助信息 | - | ## 🏗️ 底层原理(架构) ChComboParser 的引擎设计旨在实现最大的 I/O 和 CPU 吞吐量: 1. **批量内存读取:** 将目标文件直接读取到 RAM 中,以消除磁盘 I/O 瓶颈。 2. **智能分块:** 将文件划分为 `Threads * 4` 个块。切分器会智能扫描换行符(`\n`),确保绝对不会出现单行被分割给两个线程处理的情况。 3. **零争用解析:** 每个 thread 独立处理其数据块,执行无 regex 的字符串分割、过滤和转换。结果被存储在 thread-local vector 中。 4. **O(1) 合并与去重:** 主线程使用预分配的 `std::unordered_set` 合并本地 vector,实现闪电般的重复检查。 5. **优化输出:** 使用带缓冲的二进制 I/O 将最终经过净化的列表写入磁盘。 ## ⚠️ 法律声明与免责声明 该工具由 **Ch4120N** 开发,仅用于**教育目的、网络安全学习和授权的安全测试**。旨在帮助安全研究人员、渗透测试人员和系统管理员分析和清理凭证数据集。 🚨 **严禁将此工具用于恶意目的、未经授权的访问或非法的凭证填充。** 在针对任何系统或网络进行测试或分析凭证之前,请务必确保您已获得明确的书面许可。作者不对滥用此软件承担任何责任。
标签:Bash脚本, C++17, HTTP头分析, 凭证处理, 字典处理, 安全辅助工具, 文本处理工具