redstr 0.2.14

Red team string obfuscation and transformation for offensive security, WAF bypass, XSS, SQL injection, phishing, and evasion testing
Documentation
use redstr::*;
use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();

    if args.len() < 2 {
        print_usage(&args[0]);
        std::process::exit(1);
    }

    let mode = if args.len() >= 3 { &args[1] } else { "random" };
    let input = if args.len() >= 3 { &args[2] } else { &args[1] };

    let result = match mode {
        "random" | "r" => randomize_capitalization(input),
        "leetspeak" | "l" => leetspeak(input),
        "alternate" | "a" => alternate_case(input),
        "inverse" | "i" => inverse_case(input),
        "camel" | "c" => to_camel_case(input),
        "snake" | "s" => to_snake_case(input),
        "kebab" | "k" => to_kebab_case(input),
        "unicode" | "u" => unicode_variations(input),
        "zalgo" | "z" => zalgo_text(input),
        "reverse" | "rv" => reverse_string(input),
        "rot13" => rot13(input),
        "homoglyph" | "h" => homoglyph_substitution(input),
        "vowel-swap" | "vs" => vowel_swap(input),
        "double" | "d" => double_characters(input),
        "space-variants" | "sv" => space_variants(input),
        "mixed-encoding" | "me" => mixed_encoding(input),
        "base64" | "b64" => base64_encode(input),
        "url-encode" | "url" => url_encode(input),
        "sql-comment" | "sql" => sql_comment_injection(input),
        "xss-tags" | "xss" => xss_tag_variations(input),
        "case-swap" | "cs" => case_swap(input),
        "null-byte" | "nb" => null_byte_injection(input),
        "path-traversal" | "pt" => path_traversal(input),
        "command-injection" | "ci" => command_injection(input),
        "hex-encode" | "hex" => hex_encode(input),
        "hex-mixed" | "hm" => hex_encode_mixed(input),
        "--help" | "-h" => {
            print_usage(&args[0]);
            std::process::exit(0);
        }
        _ => {
            eprintln!("Unknown mode: {}", mode);
            print_usage(&args[0]);
            std::process::exit(1);
        }
    };

    println!("{}", result);
}

fn print_usage(program_name: &str) {
    eprintln!("Random Cap - String Obfuscation Tool for Security Testing");
    eprintln!();
    eprintln!("Usage: {} [mode] <text>", program_name);
    eprintln!();
    eprintln!("Basic Transformations:");
    eprintln!("  random, r         Random capitalization (default)");
    eprintln!("  alternate, a      Alternate upper/lower case");
    eprintln!("  inverse, i        Invert the case of each letter");
    eprintln!("  reverse, rv       Reverse the string");
    eprintln!();
    eprintln!("Case Conversion:");
    eprintln!("  camel, c          Convert to camelCase");
    eprintln!("  snake, s          Convert to snake_case");
    eprintln!("  kebab, k          Convert to kebab-case");
    eprintln!();
    eprintln!("Security Testing - Red/Blue/Purple Team:");
    eprintln!("  leetspeak, l      Convert to leetspeak (filter evasion)");
    eprintln!("  homoglyph, h      Substitute with lookalike characters (phishing)");
    eprintln!("  unicode, u        Random unicode variations (normalization testing)");
    eprintln!("  zalgo, z          Add zalgo combining characters (display testing)");
    eprintln!("  rot13             Apply ROT13 cipher");
    eprintln!("  vowel-swap, vs    Swap vowels randomly (pattern matching)");
    eprintln!("  double, d         Double random characters (validation testing)");
    eprintln!("  space-variants, sv Use various space characters");
    eprintln!("  mixed-encoding, me Mix character encodings");
    eprintln!();
    eprintln!("Encoding/Obfuscation:");
    eprintln!("  base64, b64       Encode to Base64 (payload obfuscation)");
    eprintln!("  url-encode, url   URL/percent encoding (web testing)");
    eprintln!("  hex-encode, hex   Encode to hexadecimal");
    eprintln!("  hex-mixed, hm     Mixed hex formats (\\x, %, 0x, &#x)");
    eprintln!();
    eprintln!("Injection Testing:");
    eprintln!("  sql-comment, sql  SQL comment injection patterns");
    eprintln!("  xss-tags, xss     XSS tag variations (filter evasion)");
    eprintln!("  case-swap, cs     Random case swapping (WAF bypass)");
    eprintln!("  null-byte, nb     Null byte injection patterns");
    eprintln!("  path-traversal, pt Path traversal patterns (../)");
    eprintln!("  command-injection, ci OS command injection separators");
    eprintln!();
    eprintln!("Examples:");
    eprintln!("  {} 'Hello World'", program_name);
    eprintln!("  {} leetspeak 'password123'", program_name);
    eprintln!("  {} homoglyph 'admin@example.com'", program_name);
    eprintln!("  {} sql-comment 'SELECT * FROM users'", program_name);
    eprintln!("  {} xss-tags '<script>alert(1)</script>'", program_name);
}