Skip to content

sinescode/ulpExtractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ulpExtractor

Version Rust License Stars


A high-performance credential extractor that parses massive url:user:pass files and extracts matching entries by domain — boundary-aware matching, multi-threaded I/O, zero-copy memory maps.


Features

Category Detail
Domain matching Boundary-aware + case-insensitive — subdomains, URLs, emails; rejects false positives
Performance Memory-mapped I/O, rayon parallelism, SIMD-accelerated byte search, live per-chunk progress
I/O Single-file, multi-file batch (-a), recursive directory walk (-r)
Output control Deduplication, append mode (-A), match limit (-M), quiet mode (-q)
Safety Refuses to write when output collides with an input path
Formats Configurable ASCII divider — :, |, ;, or any printable ASCII separator
UX Styled CLI with live progress bar, full interactive TUI, graceful cancel
Platform Linux, macOS, Windows — pre-built binaries on every release

Quick Start

# Pre-built binary (recommended)
curl -LO https://github.com/sinescode/ulpExtractor/releases/latest/download/ulpExtractor-linux-x86_64.tar.gz
tar xzf ulpExtractor-linux-x86_64.tar.gz
./ulpExtractor

# Or build from source
git clone https://github.com/sinescode/ulpExtractor.git && cd ulpExtractor
cargo build --release
./target/release/ulpExtractor

Usage

Single File

ulpExtractor -d netflix.com -i combo.txt
ulpExtractor -d netflix.com -i combo.txt -o results.txt
ulpExtractor -d netflix.com -i huge_dump.txt -M 100       # limit to 100 matches
ulpExtractor -d netflix.com -i combo.txt -q               # no progress bar

Batch Scan

ulpExtractor -d netflix.com -a                             # all .txt in current dir
ulpExtractor -d netflix.com -a -x txt,csv,json              # specific extensions
ulpExtractor -d netflix.com -a -r                           # recursive
ulpExtractor -d netflix.com -a --dir ./data -t 8            # custom dir, 8 threads
ulpExtractor -d netflix.com -i extra.txt -A                 # append to existing output

Interactive TUI

ulpExtractor                 # empty form
ulpExtractor --tui -d netflix.com -i dump.txt   # pre-filled form

Keyboard

Key Action
Tab / Move between fields
/ Space Toggle mode, checkboxes, advanced
Enter Run extraction (or toggle focused control)
? Help overlay
Esc / q Cancel extraction or quit
r Re-run last config (results screen)
Ctrl+U Clear focused text field
Ctrl+W Delete previous word

Options

Flag Description Default
-d, --domain Domain to extract credentials for (normalized, case-insensitive) required
-i, --input Input file path
-a, --all Scan all files matching extensions in a directory
-r, --recursive Walk directories recursively (with -a)
-x, --extensions File extensions to include (comma-separated) txt
--dir Target directory for -a .
-o, --output Output file path output.txt
-A, --append Append to output instead of overwriting
-t, --threads Number of worker threads (capped at 64) 4
-D, --divider Field separator character (printable ASCII) :
-M, --max-matches Stop after N unique matches unlimited
-q, --quiet Suppress the progress bar
--tui Open the interactive TUI (optionally pre-filled)

Input Format

<url_or_domain><divider><user><divider><password>

The domain may appear as a bare host, subdomain, inside a URL path, or in an email:

netflix.com:john:secret123
www.netflix.com:user@mail.com:pass456
https://platform.deepseek.com/login:admin:pass789
user@example.com:somepass

Matching is boundary-aware and case-insensitivedeepseek.com matches platform.DeepSeek.COM but not mydeepseek.com. Output is user<divider>password, one per line, deduplicated.

Domain input is normalized: schemes (https://), paths, userinfo, and trailing ports are stripped before matching.

Safety

  • Output path must not collide with any input file (prevents truncating dumps).
  • The TUI asks before overwriting an existing non-append output file.
  • Cancel (Esc / Ctrl-C) flushes partial unique matches already found.

Build

Requires Rust 1.70+ (rustup).

cargo build --release
# → target/release/ulpExtractor

About

High-performance Rust CLI/TUI tool for extracting credentials from domain:user:pass combo lists. Multi-threaded, cross-platform, with interactive terminal UI.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages