String-X (strx) is a modular automation tool developed for Infosec professionals and hacking enthusiasts. Specialized in dynamic string manipulation in Linux environments.
With modular architecture, it offers advanced features for OSINT, pentest, and data analysis, including parallel processing, specialized extraction modules, collection and integration with external APIs. Template-based system with more than 25 integrated functions.
- Features
- Installation
- Fundamental Concepts
- Modular Architecture
- Tool Usage
- Practical Examples
- Integrated Functions
- Module System
- Contributing
- Author
- 🚀 Parallel Processing: Configurable multi-threading system for high-performance execution
- 🧩 Modular Architecture: Extensible structure with specialized modules (EXT, CLC, OUT, CON, AI)
- 🔄 Dynamic Template: Substitution system with
{STRING}placeholder for flexible manipulation - 🛠️ +25 Integrated Functions: Hash, encoding, requests, validation and random value generation
- 📁 Multiple Sources: Support for files, stdin and pipe chaining
- 🎯 Smart Filtering: Filter system for selective string processing
- 💾 Flexible Output: TXT, CSV and JSON formatting with automatic timestamp
- 🔌 External Integrations: APIs, databases and notification services
- 🔍 Advanced Extraction: Complex patterns with regex and specialized processing
- 🔒 OSINT and Pentest: Features optimized for reconnaissance and security analysis
- 🌐 Multi-Engine Dorking: Integration with Google, Bing, Yahoo, DuckDuckGo and others
- 🧠 AI Integration: Module for processing with Google Gemini
- 🐋 Docker Support: Containerized execution for isolated environments
- 🛡️ Security Validations: Protection system against malicious commands with bypass option
- Python 3.12+
- Linux/MacOS
- Libraries listed in
requirements.txt
# Clone repository
git clone https://github.com/MrCl0wnLab/string-x.git
cd string-x
# Install dependencies
pip install -r requirements.txt
# Make file executable
chmod +x strx
# Test installation with help
./strx -help
# List module types
./strx -types
# List modules and usage examples
./strx -examples
# List functions
./strx -funcs# Check current link
ls -la /usr/local/bin/strx
# If necessary, recreate the link
sudo rm /usr/local/bin/strx
sudo ln -sf $HOME/Documents/string-x/strx /usr/local/bin/strxUses git commands to download new versions
# Update String-X
./strx -upgradeString-X is available as a Docker image, allowing execution in isolated environments without the need for local dependency installation.
# Build Docker image
docker build -t string-x .# Run with default command (shows examples)
docker run --rm string-x
# View help
docker run --rm string-x -h
# List available functions
docker run --rm string-x -funcs
# List module types
docker run --rm string-x -typesTo process host files, mount the directory as a volume:
# Mount current directory and process file
docker run --rm -v $(pwd):/data string-x -l /data/urls.txt -st "curl -I {STRING}"
# Process with multiple threads
docker run --rm -v $(pwd):/data string-x -l /data/hosts.txt -st "nmap -p 80,443 {STRING}" -t 20
# Save results on host
docker run --rm -v $(pwd):/data string-x -l /data/domains.txt -st "dig +short {STRING}" -o /data/results.txt# Extract emails from file
docker run --rm -v $(pwd):/data string-x -l /data/dump.txt -st "echo {STRING}" -module "ext:email" -pm
# Google dorking
docker run --rm -v $(pwd):/data string-x -l /data/dorks.txt -st "echo {STRING}" -module "clc:google" -pm
# Collect DNS information
docker run --rm -v $(pwd):/data string-x -l /data/domains.txt -st "echo {STRING}" -module "clc:dns" -pm# Host command pipes
echo "github.com" | docker run --rm -i string-x -st "whois {STRING}"
# Combination with host tools
cat urls.txt | docker run --rm -i string-x -st "curl -skL {STRING}" -p "grep '<title>'"
# Complex pipeline
cat domains.txt | docker run --rm -i string-x -st "echo {STRING}" -module "clc:crtsh" -pm | sort -u# Use proxy inside container
docker run --rm -v $(pwd):/data string-x -l /data/dorks.txt -st "echo {STRING}" -module "clc:bing" -proxy "http://172.17.0.1:8080" -pm
# Define output format
docker run --rm -v $(pwd):/data string-x -l /data/targets.txt -st "echo {STRING}" -format json -o /data/output.json
# Execute with delay between threads
docker run --rm -v $(pwd):/data string-x -l /data/apis.txt -st "curl {STRING}" -t 10 -sleep 2The tool uses the {STRING} placeholder as a keyword for dynamic value substitution. This system allows each input line to be processed individually, replacing {STRING} with the current value.
# Input file
host-01.com.br
host-02.com.br
host-03.com.br
# Command with template
./strx -l hosts.txt -st "host '{STRING}'"
# Generated result
host 'host-01.com.br'
host 'host-02.com.br'
host 'host-03.com.br'- Input: Data via file (
-l) or stdin (pipe) - Template: Template application with
{STRING} - Processing: Command/module execution
- Pipe: Optional additional processing (
-p) - Output: Final result (screen or file)
String-X uses an extensible modular architecture with four main types of modules:
| Type | Code | Description | Location |
|---|---|---|---|
| Extractor | ext |
Specific data extraction (email, URL, domain, phone) | utils/auxiliary/ext/ |
| Collector | clc |
Information collection and aggregation (DNS, whois) | utils/auxiliary/clc/ |
| Output | out |
Result formatting and sending (DB, API, files) | utils/auxiliary/out/ |
| Connection | con |
Specialized connections (SSH, FTP, etc) | utils/auxiliary/con/ |
string-x/
.
├── asset # Images, banners and logos used in documentation and CLI interface
├── config # Global project configuration files (settings, variables)
├── core # Application core, main engine and central logic
│ └── banner # Submodule for ASCII art banners
│ └── asciiart # ASCII art files for terminal display
├── output # Default directory for output files and logs generated by the tool
└── utils # Utilities and auxiliary modules for extensions and integrations
├── auxiliary # Auxiliary modules organized by function
│ ├── ai # Artificial intelligence modules (ex: Gemini prompts)
│ ├── clc # Collector modules (search, DNS, whois, external APIs)
│ ├── con # Connection modules (SSH, FTP, HTTP probe)
│ ├── ext # Extractor modules (regex: email, domain, IP, hash, etc)
│ └── out # Output/integrator modules (JSON, CSV, database, APIs)
└── helper # Utility functions and helpers used throughout the project./strx -help| Parameter | Description | Example |
|---|---|---|
-h, -help |
Show project help | -h |
-types |
List module types | -types |
-examples |
List modules and usage examples | -examples |
-functions, -funcs |
List functions | -funcs |
-l, -list |
File with strings for processing | -l hosts.txt |
-st, --str |
Command template with {STRING} |
-st "curl {STRING}" |
-o, --out |
Output file for results | -o results.txt |
-p, -pipe |
Additional command via pipe | -p "grep 200" |
-v, -verbose |
Verbose mode with levels (1-5 or 'all'). 1=info, 2=warning, 3=debug, 4=error, 5=exception | -v 3 |
-ds, -disable-security |
Disable security validations (use with caution) | -ds |
-ns, -no-shell |
Process input directly through modules/functions without shell command execution | -ns |
-t, -thread |
Number of parallel threads | -t 50 |
-f, --filter |
Filter for string selection | -f ".gov.br" |
-iff |
Function result filter: returns only results containing the specified value | -iff "admin" |
-ifm |
Module result filter: returns only results containing the specified value | -ifm "hash" |
-module |
Selection of specific module | -module "ext:email" |
-pm |
Show only module results (omits shell output) | -pm |
-pmc |
Show only the results of each module in the chain separately (without shell output) | -pmc |
-ps, -print-shell |
Show (and save) shell output even with -pm/-pmc enabled |
-ps |
-pf |
Show only function results | -pf |
-of |
Save function results to file | -of |
-sleep |
Delay between threads (seconds) | -sleep 2 |
-proxy |
Set proxy for requests | -proxy "http://127.0.0.1:8080" |
-format |
Output format (txt, csv, json) | -format json |
-upgrade |
Update String-X via Git | -upgrade |
-r, -retry |
Number of retry attempts | -r 3 |
String-X offers 5 verbosity levels for detailed output control:
# Level 1 (info) - Basic information
strx -l domains.txt -st "dig {STRING}" -v 1
# Level 2 (warning) - Warnings and alerts
strx -l urls.txt -st "curl {STRING}" -v 2
# Level 3 (debug) - Detailed debugging information
strx -l targets.txt -st "nmap {STRING}" -v 3
# Level 4 (error) - Execution errors
strx -l data.txt -st "process {STRING}" -v 4
# Level 5 (exception) - Exceptions with stack trace
strx -l complex.txt -st "analyze {STRING}" -v 5
# All levels - Maximum information output
strx -l hosts.txt -st "scan {STRING}" -v all
# Combine multiple levels
strx -l mixed.txt -st "test {STRING}" -v "1,3,4"String-X introduces the -no-shell flag that enables direct input processing through modules and functions, without shell command execution. This improves security, performance, and usability.
- 🔒 Enhanced Security: Eliminates shell injection risks
- ⚡ Superior Performance: Removes subprocess overhead
- 💡 Simplified Syntax: Eliminates need for wrapper commands like
echo {STRING}
# Traditional Approach
echo "https://example.com" | strx -st "echo {STRING}" -module "ext:url" -pm
# New No-Shell Approach
echo "https://example.com" | strx -st "{STRING}" -module "ext:url" -ns -pm# Direct URL extraction
curl 'https://blog.inurl.com.br' | strx -st "{STRING}" -module 'ext:url' -ns -pm
# Module chaining without shell
strx -l domains.txt -st "{STRING}" -module "ext:url|ext:domain|clc:dns" -ns -pm
# Large dataset processing with better performance
strx -l huge_dataset.txt -st "{STRING}" -module "ext:email" -ns -pm -t 50# Functions directly applied
echo 'https://example.com/path' | strx -st "extract_domain({STRING})" -ns -pf
# Multiple functions
strx -l passwords.txt -st "md5({STRING}); sha256({STRING})" -ns -pf# Via file
./strx -l hosts.txt -st "host {STRING}" -v
# Via pipe
cat hosts.txt | ./strx -st "host {STRING}" -v# Check URL status
./strx -l urls.txt -st "curl -I {STRING}" -p "grep 'HTTP/'" -t 20
# Extract page titles
./strx -l domains.txt -st "curl -sL https://{STRING}" -p "grep -o '<title>.*</title>'" -o titles.txt# Search CPFs in leaks
./strx -l cpfs.txt -st "grep -Ei '{STRING}' -R ./database/" -v
# Process SQL dump
./strx -l dump.txt -st "echo '{STRING}'" -module "ext:email" -pm | sort -u# IP information
cat ips.txt | ./strx -st "curl -s 'https://ipinfo.io/{STRING}/json'" -p "jq -r '.org, .country'"
# Phishing verification
./strx -l suspicious.txt -st "curl -skL https://{STRING}/" -p "grep -i 'phish\|scam\|fake'" -t 30
# DNS enumeration
./strx -l subdomains.txt -st "dig +short {STRING}" -module "clc:dns" -pm# Port scanning with nmap
./strx -l targets.txt -st "nmap -p 80,443 {STRING}" -p "grep 'open'" -t 10
# SQL injection testing
./strx -l urls.txt -st "sqlmap -u '{STRING}' --batch" -p "grep 'vulnerable'" -o sqli_results.txt
# Directory bruteforce
./strx -l wordlist.txt -st "curl -s -o /dev/null -w '%{http_code}' https://target.com/{STRING}" -p "grep '^200$'"# Extract emails from multiple files
./strx -l files.txt -st "cat {STRING}" -module "ext:email" -pm > all_emails.txt
# Encoding conversion
./strx -l base64_data.txt -st "debase64({STRING})" -pf -of
# Hash generation
./strx -l passwords.txt -st "md5({STRING}); sha256({STRING})" -pf -o hashes.txt
# JSON formatting usage
echo 'com.br' | ./strx -st "echo {STRING}" -o bing.json -format json -module 'clc:bing' -pm -v# Basic Google dorking
./strx -l dorks.txt -st "echo {STRING}" -module "clc:google" -pm
# Search for PDF files on government sites
echo 'site:gov filetype:pdf "confidential"' | ./strx -st "echo {STRING}" -module "clc:googlecse" -pm
# Finding exposed admin panels
echo 'inurl:admin intitle:"login"' | ./strx -st "echo {STRING}" -module "clc:yahoo" -pm
# Multiple search engines with same dork
echo 'intext:"internal use only"' | ./strx -st "echo {STRING}" -module "clc:duckduckgo" -pm > duckduckgo_results.txt
echo 'intext:"internal use only"' | ./strx -st "echo {STRING}" -module "clc:bing" -pm > bing_results.txt
# Compare results between engines
cat dorks.txt | ./strx -st "echo {STRING}" -module "clc:google" -pm | sort > google_results.txt
cat dorks.txt | ./strx -st "echo {STRING}" -module "clc:bing" -pm | sort > bing_results.txt
comm -23 google_results.txt bing_results.txt > google_exclusive.txt# Using proxy with dorking to avoid blocks
./strx -l dorks.txt -st "echo {STRING}" -module "clc:google" -proxy "http://127.0.0.1:9050" -pm
# Using proxy with authentication
cat dorks.txt | ./strx -st "echo {STRING}" -module "clc:yahoo" -proxy "http://user:pass@server:8080" -pm
# Applying dorking with TOR
./strx -l sensitive_dorks.txt -st "echo {STRING}" -module "clc:google" -proxy "https://127.0.0.1:9050" -pm -t 1 -sleep 5
# Dorking with structured output + proxy with authentication
./strx -l sqli_dorks.txt -st "echo {STRING}" -module "clc:googlecse" -proxy "http://user:pass@10.0.0.1:8080" -pm -module "out:json" -pm
# Distributed collection through proxy list
cat proxy_list.txt | while read proxy; do
./strx -l target_dorks.txt -st "echo {STRING}" -module "clc:bing" -proxy "$proxy" -pm -t 3 -sleep 2
done > combined_results.txtString-X includes more than 25 built-in functions that can be used within {STRING} templates and pipe commands. These functions are processed before shell command execution and cover everything from hash, encoding, string manipulation, random value generation, data analysis, document validation, HTTP requests, file manipulation and much more.
# Simple function
./strx -l data.txt -st "function({STRING})" -pf
# Multiple functions
./strx -l data.txt -st "{STRING}; md5({STRING}); base64({STRING})" -pf
# Function with parameters
./strx -l data.txt -st "str_rand(10); int_rand(5)" -pf| Function | Description | Example |
|---|---|---|
clear |
Remove spaces, tabs and line breaks | clear({STRING}) |
base64 / debase64 |
Encode/decode Base64 | base64({STRING}) |
hex / dehex |
Encode/decode hexadecimal | hex({STRING}) |
sha1, sha256, md5 |
Generate hash | sha256({STRING}) |
str_rand, int_rand |
Generate random string/number | str_rand(10) |
ip |
Resolve hostname to IP | ip({STRING}) |
replace |
Replace substring | replace(http:,https:,{STRING}) |
get |
HTTP GET request | get(https://{STRING}) |
urlencode |
URL encode | urlencode({STRING}) |
rev |
Reverse string | rev({STRING}) |
timestamp |
Current timestamp | timestamp() |
extract_domain |
Extract domain from URL | extract_domain({STRING}) |
jwt_decode |
Decode JWT (payload) | jwt_decode({STRING}) |
whois_lookup |
WHOIS query | whois_lookup({STRING}) |
cert_info |
SSL certificate info | cert_info({STRING}) |
user_agent |
Random User-Agent | user_agent() |
cidr_expand |
Expand CIDR range | cidr_expand(192.168.0.0/30) |
subdomain_gen |
Generate common subdomains | subdomain_gen({STRING}) |
email_validator |
Validate email | email_validator({STRING}) |
hash_file |
File hashes | hash_file(path.txt) |
encode_url_all |
URL encode (everything) | encode_url_all({STRING}) |
phone_format |
Format BR phone | phone_format({STRING}) |
password_strength |
Password strength | password_strength({STRING}) |
social_media_extract |
Extract social handles | social_media_extract({STRING}) |
leak_check_format |
Format email for leaks | leak_check_format({STRING}) |
cpf_validate |
Validate CPF | cpf_validate({STRING}) |
See the complete list and examples in
utils/helper/functions.pyor use-functionsin CLI for detailed documentation.
# Generate multiple hashes
./strx -l passwords.txt -st "md5({STRING}); sha1({STRING}); sha256({STRING})" -pf
# Work with Base64
./strx -l data.txt -st "base64({STRING})" -pf
echo "SGVsbG8gV29ybGQ=" | ./strx -st "debase64({STRING})" -pf# Generate random strings
./strx -l domains.txt -st "https://{STRING}/admin?token=str_rand(32)" -pf
# Generate random numbers
./strx -l apis.txt -st "curl '{STRING}?id=int_rand(6)'" -pf# Resolve IPs
./strx -l hosts.txt -st "{STRING}; ip({STRING})" -pf
# Make GET requests
./strx -l urls.txt -st "get(https://{STRING})" -pf# Replace protocols
./strx -l urls.txt -st "replace(http:,https:,{STRING})" -pf
# Reverse strings
./strx -l data.txt -st "rev({STRING})" -pf
# URL encoding
./strx -l params.txt -st "urlencode({STRING})" -pf-pf: Show only function results (ignore shell execution)-of: Save function results to output file
# Only show function results
./strx -l domains.txt -st "{STRING}; md5({STRING})" -pf
# Save functions to file
./strx -l data.txt -st "base64({STRING})" -pf -of -o encoded.txt💡 Tip: You can add custom functions by editing the file
utils/helper/functions.py
@staticmethod
def check_admin_example(value: str) -> str:
try:
if '<p>admin</p>' in value:
return value
except:
return str()# Executing the created function
./strx -l data.txt -st "check_admin_example({STRING})" -pfString-X uses an extensible modular architecture that allows adding specific functionalities without modifying the main code. Modules are organized by type and loaded dynamically.
| Type | Code | Description | Location |
|---|---|---|---|
| Extractor | ext |
Specific data extraction using regex | utils/auxiliary/ext/ |
| Collector | clc |
Information collection from APIs/services | utils/auxiliary/clc/ |
| Output | out |
Data formatting and sending | utils/auxiliary/out/ |
| Connection | con |
Specialized connections | utils/auxiliary/con/ |
| AI | ai |
Artificial intelligence | utils/auxiliary/ai/ |
./strx -module "type:module_name"-module type:name: Specifies the module to be used-pm: Shows only module results (omits shell output)-pmc: Shows only the results of each module in the chain separately (without shell output)-ps/-print-shell: Shows (and saves) shell output even with-pm/-pmcenabled
Modules for extracting patterns and specific data using regex:
| Module | Description | CLI Example |
|---|---|---|
email |
Extract valid email addresses | -module "ext:email" |
domain |
Extract domains and subdomains | -module "ext:domain" |
url |
Extract complete URLs (HTTP/HTTPS) | -module "ext:url" |
phone |
Extract phone numbers (BR) | -module "ext:phone" |
credential |
Extract credentials, tokens, keys | -module "ext:credential" |
ip |
Extract IPv4/IPv6 addresses | -module "ext:ip" |
hash |
Extract MD5, SHA1, SHA256, SHA512 hashes | -module "ext:hash" |
# Example: Extract emails from data dump
./strx -l database_dump.txt -st "echo '{STRING}'" -module "ext:email" -pmModules for external information collection, APIs and analysis:
| Module | Description | CLI Example |
|---|---|---|
archive |
Collect archived URLs from Wayback Machine | -module "clc:archive" |
bing |
Perform dork searches on Bing | -module "clc:bing" |
crtsh |
Collect SSL/TLS certificates and subdomains | -module "clc:crtsh" |
dns |
Collect DNS records (A, MX, TXT, NS) | -module "clc:dns" |
duckduckgo |
Perform dork searches on DuckDuckGo | -module "clc:duckduckgo" |
emailverify |
Verify email validity (MX, SMTP) | -module "clc:emailverify" |
ezilon |
Perform dork searches on Ezilon | -module "clc:ezilon" |
geoip |
IP geolocation | -module "clc:geoip" |
google |
Perform dork searches on Google | -module "clc:google" |
googlecse |
Perform dork searches using Google CSE | -module "clc:googlecse" |
http_probe |
HTTP/HTTPS probing, header analysis | -module "clc:http_probe" |
ipinfo |
IP/host port scanner | -module "clc:ipinfo" |
lycos |
Perform dork searches on Lycos | -module "clc:lycos" |
naver |
Perform dork searches on Naver (Korean) | -module "clc:naver" |
netscan |
Network scanner (hosts, services) | -module "clc:netscan" |
shodan |
Query Shodan API | -module "clc:shodan" |
sogou |
Perform dork searches on Sogou (Chinese) | -module "clc:sogou" |
spider |
Web spider for recursive URL collection | -module "clc:spider" |
subdomain |
Subdomain enumeration | -module "clc:subdomain" |
virustotal |
Query VirusTotal API | -module "clc:virustotal" |
whois |
Domain WHOIS query | -module "clc:whois" |
yahoo |
Perform dork searches on Yahoo | -module "clc:yahoo" |
# Example: Collect DNS information
./strx -l domains.txt -st "echo {STRING}" -module "clc:dns" -pm
# Example: Collect information using search engines
./strx -l dorks.txt -st "echo {STRING}" -module "clc:bing" -pm
./strx -l dorks.txt -st "echo {STRING}" -module "clc:google" -pm
./strx -l dorks.txt -st "echo {STRING}" -module "clc:googlecse" -pm
./strx -l dorks.txt -st "echo {STRING}" -module "clc:yahoo" -pm
./strx -l dorks.txt -st "echo {STRING}" -module "clc:duckduckgo" -pm
# Example: Probe and analyze web servers
./strx -l urls.txt -st "echo {STRING}" -module "clc:http_probe" -pm
# Examples with specific dorking
echo 'site:fbi.gov filetype:pdf' | ./strx -st "echo {STRING}" -module "clc:google" -pm
echo 'site:github.com inurl:admin' | ./strx -st "echo {STRING}" -module "clc:googlecse" -pm
echo 'inurl:admin' | ./strx -st "echo {STRING}" -module "clc:lycos" -pm
echo 'site:github.com' | ./strx -st "echo {STRING}" -module "clc:ezilon" -pm
echo 'filetype:pdf' | ./strx -st "echo {STRING}" -module "clc:yahoo" -pmModules for output and result formatting:
| Module | Description | CLI Example |
|---|---|---|
json |
Save results to JSON | -module "out:json" |
csv |
Save results to CSV | -module "out:csv" |
xml |
Save results to XML | -module "out:xml" |
# Example: Save to JSON
./strx -l data.txt -st "process {STRING}" -module "out:json" -pmModules for connecting to external services and integrating results:
| Module | Description | CLI Example |
|---|---|---|
sqlite |
Save data to SQLite database | -module "con:sqlite" |
mysql |
Save data to MySQL database | -module "con:mysql" |
telegram |
Send results via Telegram Bot | -module "con:telegram" |
slack |
Send results via Slack Webhook | -module "con:slack" |
opensearch |
Index results in Open Search | -module "con:opensearch" |
ftp |
Connection and transfer via FTP | -module "con:ftp" |
ssh |
Execute commands via SSH | -module "con:ssh" |
s3 |
Upload/download data to Amazon S3 | -module "con:s3" |
# Example: Save to SQLite
./strx -l data.txt -st "process {STRING}" -module "con:sqlite" -pmModules for AI prompts:
| Module | Description | CLI Example |
|---|---|---|
gemini |
Prompt for Google Gemini AI - (Create API Key) | -module "ai:gemini" |
# Example: Using files with Prompts
./strx -l prompts.txt -st "echo {STRING}" -module "ai:gemini" -pm
# Example: Collect URLs and send for analysis building Prompt
./strx -l urls.txt -st "echo 'Analyze URL: {STRING}'" -module "ai:gemini" -pmTo create new modules, follow the standard structure:
"""
Module introduction
"""
from core.basemodule import BaseModule
import re
class ModuleName(BaseModule):
def __init__(self):
super().__init__()
# Define module meta information
self.meta.update({
"name": "Module name...",
"description": "Describe the module...",
"author": "Creator name...",
"type": "extractor | collector | Output..."
})
# Define required options for this module
self.options = {
"data": str(),
"regex": str(),
"proxy": str()
}
# Mandatory function for execution
def run(self):
"""
Context for module logic
> Access options information via: self.options.get(key_name)
"""
# Save module execution information
self.set_result(value_regex)You can combine filters with modules for more specific processing:
# Extract only .gov emails
./strx -l data.txt -st "echo '{STRING}'" -module "ext:email" -pm -f ".gov"
# DNS lookup only for .br domains
./strx -l domains.txt -st "echo {STRING}" -module "clc:dns" -pm -f ".br"The filter system allows processing only strings that meet specific criteria, optimizing performance and precision.
./strx -f "filter_value" / ./strx --filter "filter_value"# Filter only .gov.br domains
./strx -l domains.txt -st "curl {STRING}" -f ".gov.br"
# Filter only HTTPS URLs
./strx -l urls.txt -st "curl {STRING}" -f "https"
# Filter specific IPs
./strx -l logs.txt -st "analyze {STRING}" -f "192.168"
# Filter file extensions
./strx -l files.txt -st "process {STRING}" -f ".pdf"
# Filter only function results containing "admin"
./strx -l urls.txt -st "{STRING}; md5({STRING})" -pf -iff "admin"
# Filter only module results containing specific hash
./strx -l domains.txt -st "echo {STRING}" -module "ext:hash" -pm -ifm "a1b2c3"
# Combine function and module filters
./strx -l data.txt -st "{STRING}; md5({STRING})" -module "ext:domain" -pf -pm -iff "google" -ifm "admin"String-X supports parallel processing through threads to accelerate operations on large data volumes.
# Define number of threads
./strx -t 50 / ./strx -thread 50
# Define delay between threads
./strx -sleep 2# Fast HTTP status verification
./strx -l big_url_list.txt -st "curl -I {STRING}" -p "grep 'HTTP/'" -t 100
# Mass DNS resolution
./strx -l huge_domain_list.txt -st "dig +short {STRING}" -t 50 -sleep 1
# Port scanning
./strx -l ip_list.txt -st "nmap -p 80,443 {STRING}" -t 20 -sleep 3- Rate limiting: Use
-sleepto avoid service overload - Adequate number: Adjust
-taccording to available resources - Monitoring: Use
-v 1for basic info,-v 3for detailed debug,-v allfor maximum control
String-X has been optimized to process large files efficiently:
# Process large file with multiple threads
strx -l large_file.txt -st "echo {STRING}" -module "ext:email" -pm -t 20 -sleep 1
# For very large files, use fewer threads and more delay
strx -l huge_dataset.txt -st "process {STRING}" -t 10 -sleep 2 -vString-X includes security validations to prevent execution of malicious commands:
- Input size: Limits input data to 1MB by default
- String quantity: Maximum of 10,000 strings per execution
- Dangerous patterns: Detects and blocks potentially malicious commands
- Threads: Limits concurrent threads to avoid system overload
# Disable validations for legitimate complex commands
strx -l data.txt -st "echo {STRING}; md5sum {STRING}" -ds
# Process large files without limitations
strx -l huge_file.txt -st "process {STRING}" -ds -t 50
# Use with functions that may generate patterns detected as suspicious
echo "test" | strx -st "echo {STRING}; echo 'result'" -ds# See security validation details (full debug)
strx -l data.txt -st "command {STRING}" -v 3
# Check why a command was blocked
strx -s "test" -st "suspicious_command" -v 3Command: cat hosts.txt | ./strx -str 'host {STRING}'
Command: cat hosts.txt | ./strx -str "curl -Iksw 'CODE:%{response_code};IP:%{remote_ip};HOST:%{url.host};SERVER:%header{server}' https://{STRING}" -p "grep -o -E 'CODE:.(.*)|IP:.(.*)|HOST:.(.*)|SERVER:.(.*)'" -t 30
Command: cat hosts.txt | ./strx -str 'host {STRING}' -v
output-%d-%m-%Y-%H.txt > output-15-06-2025-11.txt
Contributions are welcome! To contribute:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- 🐛 Bug fixes
- ✨ New features
- 📝 Documentation improvements
- 🧩 New modules
- ⚡ Performance optimizations
To create new modules, consult the Module System section and follow established patterns.
This project is licensed under the MIT License - see the LICENSE file for details.
MrCl0wn
- 🌐 Blog: http://blog.mrcl0wn.com
- 🐙 GitHub: @MrCl0wnLab | @MrCl0wnLab
- 🐦 Twitter: @MrCl0wnLab
- 📧 Email: mrcl0wnlab@gmail.com
⭐ If this project was useful, consider giving it a star!
💡 Suggestions and feedback are always welcome!
💀 Hacker Hackeia!




