Commit Graph
42 Commits
Author SHA1 Message Date
Justin BollingerandClaude Opus 4.6 a3a8951c6f chore: align CI and tooling with global development standards
- Remove 6 duplicate per-version pytest workflows (matrix build covers all)
- Pin GitHub Actions to SHA hashes with version comments
- Add persist-credentials: false to checkout steps
- Replace mypy with ty for type checking (faster, stricter)
- Pin dev deps to exact versions (ty==0.0.17, ruff==0.15.1, pytest==9.0.2, pytest-cov==7.0.0)
- Remove types-* stub packages (ty doesn't need them)
- Remove stale [dependency-groups] section from pyproject.toml
- Update shell scripts to use set -euo pipefail
- Add prek.toml for git hook management (pre-push, post-commit)
- Add lint-infra.yml workflow (shellcheck + actionlint)
- Fix actionlint warning: pass github.head_ref through env var
- Track CLAUDE.md and .claude/ scripts in git
- Update README.md and Makefile references from mypy to ty

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 12:42:51 -05:00
Justin BollingerandClaude Opus 4.6 8e30b1fbe2 feat: auto-bump patch version on PR merge to main
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:58:47 -05:00
Justin BollingerandClaude Opus 4.6 c3c4d9da60 feat: add PassGPT model fine-tuning and training menu integration
Add ability to fine-tune PassGPT models on custom password wordlists.
Models save locally to ~/.hate_crack/passgpt/ with no data uploaded to
HuggingFace (push_to_hub=False, HF_HUB_DISABLE_TELEMETRY=1). The
PassGPT menu now shows available models (default + local fine-tuned)
and a training option. Adds datasets to [ml] deps and passgptTrainingList
config key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:51:06 -05:00
Justin BollingerandClaude Opus 4.6 f0b512a079 feat: add startup version check, fix PassGPT MPS/output issues, hide menu without ML deps
- Add optional startup version check against GitHub releases (check_for_updates config option)
- Add packaging dependency for version comparison
- Fix PassGPT OOM on MPS by capping batch size to 64 and setting memory watermark limits
- Fix PassGPT output having spaces between every character
- Hide PassGPT menu item (17) unless torch/transformers are installed
- Fix mypy errors in passgpt_generate.py with type: ignore comments
- Update README with version check docs, optional ML deps section, and PassGPT CLI options
- Add test_version_check.py with 8 tests covering update check behavior

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:32:40 -05:00
Justin BollingerandClaude Opus 4.6 39970b41c4 feat: add PassGPT attack (#17) - GPT-2 based ML password generator
Add PassGPT as attack mode 17, using a GPT-2 model trained on leaked
password datasets to generate candidate passwords. The generator pipes
candidates to hashcat via stdin, matching the existing OMEN pipe pattern.

- Add standalone generator module (python -m hate_crack.passgpt_generate)
- Add [ml] optional dependency group (torch, transformers)
- Add config keys: passgptModel, passgptMaxCandidates, passgptBatchSize
- Wire up menu entries in main.py, attacks.py, and hate_crack.py
- Auto-detect GPU (CUDA/MPS) with CPU fallback
- Add unit tests for pipe construction, handler, and ML deps check

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 08:41:22 -05:00
Justin BollingerandClaude Opus 4.6 2446ef3ed1 docs: add OMEN attack documentation to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 15:44:31 -05:00
Justin BollingerandClaude Opus 4.6 aaaa185432 docs: update README Ollama defaults to match config
Update ollamaModel from qwen2.5 to mistral and ollamaNumCtx from
8192 to 2048 to reflect recent config changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:13:47 -05:00
Justin BollingerandClaude Opus 4.6 3b50f9907d feat: update LLM attack prompt to CTF-style framing
Replace the denylist-oriented prompt with a capture-the-flag scenario
prompt that focuses on recovering passwords using industry terms and
company name permutations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:36:45 -05:00
Justin BollingerandClaude Opus 4.6 386d08c765 docs: update README for LLM attack, Ollama config, and accuracy fixes
Add LLM Attack (option 15) to menu listing and attack descriptions,
document Ollama config keys, fix broken code block, update pre-push
hook example, add make update target, and correct CI Python versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:20:19 -05:00
Justin BollingerandClaude Opus 4.6 91906e3313 fix: separate hcatPath (hashcat dir) from hate_path (asset dir)
hcatPath now exclusively points to the hashcat install directory and is
auto-discovered from PATH when not configured. hate_path is resolved
from the package directory (installed) or repo root (development) with
no auto-discovery. Extracted vendor-assets/clean-vendor Makefile targets
to deduplicate the install logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:23:12 -05:00
Justin Bollinger 61bca2c4b6 docs: update README with current attacks and features 2026-02-10 11:56:14 -05:00
Justin Bollinger a8c1abae2f updated documentation 2026-02-06 19:51:48 -05:00
Justin Bollinger d9e9930471 working loopback mode with tests 2026-02-06 15:06:25 -05:00
Justin BollingerandGitHub 721628ca9a Remove badge status explanations from README
Removed explanations for badge statuses in the README.
2026-02-06 09:51:28 -05:00
Justin Bollinger 242e065101 ci: add individual badges for each Python version (3.9-3.14)
- Create separate workflow files for Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
- Each Python version gets its own status badge
- Easily track which version(s) are failing tests
- Update README to display all 6 Python version badges
- Badges are clickable and link to individual workflow results
- Maintain pytest.yml as combined multi-version workflow
2026-02-06 09:50:32 -05:00
Justin Bollinger 94e1377137 ci: split tests workflow into separate ruff, mypy, and pytest workflows
- Create individual workflow files for ruff, mypy, and pytest
- Each workflow has its own status badge for independent monitoring
- Ruff badge shows code quality status
- Mypy badge shows type checking status
- Pytest badge shows multi-version testing status
- Update README with all three badges and clear status documentation
- Remove combined tests.yml in favor of granular workflows
2026-02-06 09:49:30 -05:00
Justin Bollinger 8ef6c1cba2 ci: add multi-version Python testing and status banners
- Separate lint job for ruff and mypy checks on Python 3.13
- Add pytest matrix strategy to test Python 3.9 through 3.14
- Add GitHub Actions status badge to README
- Document CI/CD pipeline and what each check does
- Include pass/fail criteria for linting, type checking, and testing
- Link to Actions tab for detailed workflow results
2026-02-06 09:46:26 -05:00
Justin Bollinger da2f56bf2a docs: add Development section to README
- Document how to install dev dependencies
- Provide commands for running ruff and mypy locally
- Include pre-push hook example for automated checks
- List all included dev dependencies
- Help contributors run checks before pushing
2026-02-06 09:35:20 -05:00
Justin Bollinger 9756f83b0c lots of refactoring around the menues and building out test cases 2026-02-05 13:52:06 -05:00
Justin Bollinger 944064ffc7 expanded tests and hashview menu changes 2026-02-03 19:28:45 -05:00
Justin Bollinger 2f0419e809 fixed pathing issue 2026-02-01 22:43:44 -05:00
Justin Bollinger 892eb6b839 Revert ancestor asset lookup 2026-02-01 22:41:42 -05:00
Justin Bollinger 9695e1b676 Fix uv tool asset lookup 2026-02-01 22:32:24 -05:00
Justin Bollinger 80fca8f41b Fix asset path resolution: separate hashcat and hate_crack locations
BREAKING CHANGE: Corrected understanding of hcatPath configuration

- hcatPath should point to hashcat binary location (or omit if in PATH)
- hashcat-utils and princeprocessor are located in hate_crack repo
- Changed code to use hate_path for utilities instead of hcatPath
- Updated error messages to guide users correctly
- Updated README with correct configuration examples
- Asset discovery now properly uses HATE_CRACK_HOME environment variable

This fixes the issue where users had hcatPath pointing to hashcat
installation but the code was looking there for hashcat-utils.
2026-02-01 22:05:27 -05:00
Justin Bollinger 604da2a3e2 Improve error handling for misconfigured hcatPath
- Add directory existence check in ensure_binary() before attempting make
- Provide clear error message when build directory doesn't exist
- Add troubleshooting section to README.md explaining common hcatPath mistakes
- Add tests for invalid hcatPath scenario and installed tool execution
- Helps users distinguish between hashcat path and hate_crack path

Fixes issue where users set hcatPath to hashcat installation directory
instead of hate_crack repository directory, causing confusing errors.
2026-02-01 22:02:35 -05:00
Justin Bollinger d23a0a8be8 issue executing hate_crack from make install outside of the install directory 2026-02-01 21:54:33 -05:00
Justin Bollinger 82d2a1a13a updated makefile 2026-02-01 20:46:01 -05:00
Justin Bollinger fbd8d7041f Add make test and update testing docs 2026-01-31 23:17:16 -05:00
Justin Bollinger 1b01993a19 Expand Docker E2E tests with hashcat crack 2026-01-31 23:01:14 -05:00
Justin Bollinger 203afb3d82 Restore hate_crack package and add E2E install tests 2026-01-31 22:50:51 -05:00
Justin BollingerandGitHub a1d7d9198a Update README with submodule initialization instructions
Added instructions for initializing submodules if not cloned recursively.
2026-01-27 13:07:03 -05:00
Justin BollingerandGitHub 8739d830ee Improve submodule initialization instructions in README
Updated README with clearer instructions for submodule initialization.
2026-01-27 13:06:21 -05:00
Justin BollingerandGitHub bc35662b83 Revise README for cloning, usage, and testing instructions
Updated README to reflect changes in cloning method, usage command, and test execution.
2026-01-27 13:05:32 -05:00
Justin BollingerandGitHub 1cedb74f13 Merge pull request #60 from trustedsec/expander
updated readme
2026-01-27 13:00:45 -05:00
Justin Bollinger 15540bd2d1 Merge remote-tracking branch 'refs/remotes/origin/main' 2026-01-26 23:28:09 -05:00
Justin Bollinger f6e459ade9 code cleanup 2026-01-26 23:27:55 -05:00
Justin Bollinger 7975d47c67 updated readme 2026-01-26 23:02:31 -05:00
Justin Bollinger 4091780a11 automatic rules 2026-01-26 22:57:46 -05:00
Justin Bollinger 544ee2dba3 cleanup of modules 2026-01-26 14:29:39 -05:00
Justin Bollinger 17e8298f07 Version2 initial commits 2026-01-26 13:44:02 -05:00
Justin BollingerandGitHub c68d8dbc98 Delete README.md 2018-01-26 12:52:06 -05:00
trustedsecandGitHub 1c907dc4e7 Initial commit 2018-01-26 11:49:16 -05:00