{"id":31645445,"url":"https://github.com/greycloudss/sabaton","last_synced_at":"2025-10-07T05:14:00.162Z","repository":{"id":314959518,"uuid":"1049268468","full_name":"greycloudss/Sabaton","owner":"greycloudss","description":"Sabaton is a WIP offline password cracker and wordlist engine in C. It generates exhaustive keyspaces and evaluates them against mainstream hash functions via a simple API. Built for air-gapped environments and high-throughput use, with a roadmap including CLI, multithreading, streaming mode, and GPU acceleration.","archived":false,"fork":false,"pushed_at":"2025-10-04T15:55:13.000Z","size":88,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-04T17:37:45.399Z","etag":null,"topics":["armourer","c","cracking","cryptography","security"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greycloudss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-02T18:18:03.000Z","updated_at":"2025-10-04T15:55:17.000Z","dependencies_parsed_at":"2025-09-15T22:36:13.651Z","dependency_job_id":"e3261f93-2c6a-4dd6-81a0-bcc63f6abe1b","html_url":"https://github.com/greycloudss/Sabaton","commit_stats":null,"previous_names":["greycloudss/sabaton"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/greycloudss/Sabaton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FSabaton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FSabaton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FSabaton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FSabaton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greycloudss","download_url":"https://codeload.github.com/greycloudss/Sabaton/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greycloudss%2FSabaton/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278722757,"owners_count":26034463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["armourer","c","cracking","cryptography","security"],"created_at":"2025-10-07T05:13:45.854Z","updated_at":"2025-10-07T05:14:00.155Z","avatar_url":"https://github.com/greycloudss.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sabaton\n\nSabaton is a lightweight, offline cracking \u0026 keyspace toolkit written in C. It focuses on flexible keyspace/wordlist generation, modular cipher and hash engines, and running with minimal dependencies — suitable for air-gapped or resource-constrained environments. This README mirrors the concise style used for Gauntlet.\n\n\u003e Part of the **Armourer** series of projects.  \n\u003e **Work in Progress**\n\n---\n\n## Features\n\n* Multiple built-in hash implementations (SHA1, SHA256, CRC32, Murmur3, XXHash32, etc.)\n* Cipher modules (Hill cipher, Affine/Caesar, and more)\n* Fragment/key CSV parsing and custom alphabets (Unicode-aware)\n* Keyspace / wordlist generation and brute-force helpers\n* Minimal external dependencies: compiles with a standard C toolchain\n\n---\n\n## Status\n\nWIP — core components exist but the project is actively being refined. Expect rough edges around: CLI behavior, padding conventions, error messages, and some cipher modules.\n\n---\n\n## For anyone coming from our cryptography course - the supported practice lecture topics:\n\n| Translation (EN)                           | Status | Progress    |\n| ------------------------------------------ | ------ | ----------- |\n| Transposition ciphers, etc.                | ✓      | Done        |\n| Analysis of substitution ciphers           | ✓      | Done        |\n| Vigenère cipher analysis                   | ✓      | Done        |\n| Enigma cipher                              | ✓      | Done        |\n| Feistel cipher                             | ✓      | Done        |\n| Block cipher modes (of operation)          | ✗      | —           |\n| AES variant                                | ✗      | —           |\n| Stream ciphers                             | ✗      | —           |\n| Stream ciphers, statistical tests          | ✗      | —           |\n| Knapsack cryptosystem                      | ✗      | —           |\n| RSA cipher (cryptosystem)                  | ✗      | —           |\n| Rabin and Blum–Goldwasser cryptosystems    | ✗      | —           |\n| ElGamal cryptosystem and digital signature | ✗      | —           |\n| Secret sharing                             | ✗      | —           |\n| Secret sharing schemes                     | ✗      | —           |\n| Elliptic-curve cryptography                | ✗      | —           |\n| Zero-knowledge proofs                      | ✗      | —           |\n\n\n---\n\n## Quick Build\n\nAdjust paths to match the repo layout. Example compile line used during development:\n\n```bash\ngcc main.c \\\n    internals/hash.c \\\n    internals/cyphers/affineCaesar.c \\\n    internals/hashes/crc32.c \\\n    internals/hashes/murmur3.c \\\n    internals/hashes/sha1.c \\\n    internals/hashes/sha256.c \\\n    internals/hashes/xxhash32.c \\\n    internals/cyphers/hill.c \\\n    internals/cyphers/vigenere.c \\\n    internals/cyphers/enigma.c \\\n    internals/cyphers/feistel.c \\\n    -lm \\\n    -o sabaton\n```\n\nYou can remove or add source files depending on which modules you want to include.\n\n---\n\n## Basic Usage\n\nGeneral invocation pattern:\n\n```bash\n./sabaton -decypher -hill -alph \"\u003cALPHABET\u003e\" -frag \"\u003cfragment\u003e\" \"\u003cinput\u003e\"\n```\n\n* `-decypher` — run in decryption mode (other modes exist depending on build)\n* `-hill` — specify cipher module (replace with other cipher flags as available)\n* `-alph` — alphabet string used for indexing (must include all characters in input)\n* `-frag` — key fragment or CSV parameters (e.g., `17,6,4,9` for a 2×2 Hill key)\n* final positional argument — ciphertext (or file depending on CLI)\n\nExample:\n\n```bash\n./sabaton -decypher -hill -alph \"AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ\" -frag \"17,6,4,9\" \"TBKKI HĄŪRH ...\"\n```\n\n```bash\n./sabaton -decypher -enigma -alph \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" \\ \n  -frag \"R1:5,3,2,0,17,10,8,24,20,11,1,12,9,22,16,6,25,4,18,21,7,13,15,23,19,14|R2:20,3,24,18,8,5,15,4,7,11,0,13,9,22,12,23,10,1,19,21,17,16,2,25,6,14|KEY:3,?\" \\\n  \"KAMMS PESAB ZDXXA VMYPZ ROJGF TMZGT TMNFZ GTQDL XQRPC DQQVR QFUQT TPOY\"\n  ```\n\nNotes:\n\n* Alphabets are processed as Unicode code points — make sure the provided `-alph` contains every codepoint used in the ciphertext.\n* Hill cipher keys must be invertible mod alphabet size; non-invertible keys will not decrypt correctly.\n\n---\n\n## Design Notes\n\n* The project intentionally keeps cryptographic primitives local (in `internals/`) so it can run without internet or large external libs.\n* Unicode handling is performed by converting strings to code points and operating on indices, then encoding back to UTF-8.\n* Padding/odd-length block handling differs across cipher modules — keep that in mind if results seem unexpected.\n\n---\n\n## Roadmap\n\n* CLI help/usage output and improved argument validation\n* Consistent, configurable padding for block ciphers\n* Multithreading for faster keyspace searches\n* Plugin system for adding/removing cipher \u0026 hash modules easily\n* Better error messages when keys are invalid (e.g., non-invertible Hill matrices)\n* Tests, examples, and sample datasets for common ciphers\n\n---\n\n## License\n\nMIT — include `LICENSE` in the repo.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fsabaton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreycloudss%2Fsabaton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreycloudss%2Fsabaton/lists"}