From 289da256094bfc727fcb7dc6422d7cf4b1c82b50 Mon Sep 17 00:00:00 2001 From: Justin Bollinger Date: Fri, 24 Jul 2026 20:19:43 -0400 Subject: [PATCH] docs: document non-interactive attack subcommands --- CHANGELOG.md | 11 +++++++++++ README.md | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 185e62d..5ac4799 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Dates are omitted for releases predating this file; see the git tags for exact timing. +## [2.14.0] - 2026-07-24 + +### Added + +- **Non-interactive attack subcommands** for scripting (issue #17). Launch a + single attack without the menu: `quick` (wordlist + optional `--rules`), + `dict` (configured-wordlist methodology), `brute` (`--min`/`--max`), and + `topmask` (`--target-time`). Preprocessing prompts auto-accept their + defaults, and the process returns a clean exit code (0 on success, non-zero + on a bad hash file, hash type, wordlist, or rule name). + ## [2.13.0] - 2026-07-24 ### Added diff --git a/README.md b/README.md index 32e2738..792fa5f 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,30 @@ You can also use Python directly: python hate_crack.py ``` +### Non-interactive / scripted usage + +For automation you can launch a single attack directly, bypassing the menu. The attack name is the first argument, followed by the hash file and hashcat hash type. Preprocessing prompts (computer-account filtering, LM-first brute force, duplicate-account dedup) auto-accept their defaults in this mode. The process exits `0` on success and non-zero on error (missing hash file, non-numeric hash type, missing wordlist, or an unknown rule filename). + +```bash +# Quick crack: one wordlist + optional rule(s) from the rules directory +hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule + +# Chain two rules in a single run +hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule+d3ad0ne.rule + +# Run two rules as two separate passes +hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule d3ad0ne.rule + +# Canned dictionary methodology (uses your configured wordlists) +hate_crack dict hashes.txt 1000 + +# Brute force lengths 1-8 +hate_crack brute hashes.txt 1000 --min 1 --max 8 + +# Top-mask attack targeting ~4 hours +hate_crack topmask hashes.txt 1000 --target-time 4 +``` + ------------------------------------------------------------------- ## Troubleshooting