fix: replace emojis with Unicode symbols, add wordlist and symlink install
Swap emoji icons for clean Unicode symbols (✓ ✗ ◆ ▸ ⏱) matching the Go project style. Include 10k-most-common.txt wordlist for zero-friction Quick Start. install.sh now symlinks binary to ~/.local/bin/hashcracker. Fix DIM unbound variable in install.sh.
This commit is contained in:
parent
efdfacdb55
commit
e76a7224ba
|
|
@ -1,7 +1,6 @@
|
|||
# ©AngelaMos | 2026
|
||||
# .gitignore
|
||||
|
||||
docs/
|
||||
build/
|
||||
*.o
|
||||
*.a
|
||||
|
|
|
|||
|
|
@ -29,7 +29,9 @@
|
|||
|
||||
```bash
|
||||
./install.sh
|
||||
hashcracker --hash <hash> --wordlist /path/to/rockyou.txt
|
||||
hashcracker --hash 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 \
|
||||
--wordlist wordlists/10k-most-common.txt
|
||||
# ✔ CRACKED: password
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
|
|
@ -37,15 +39,21 @@ hashcracker --hash <hash> --wordlist /path/to/rockyou.txt
|
|||
>
|
||||
> Install: `curl -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin`
|
||||
|
||||
## Commands
|
||||
## Demo Hashes
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `hashcracker --hash <h> --wordlist <path>` | Dictionary attack against a hash |
|
||||
| `hashcracker --hash <h> --bruteforce --charset lower,digits` | Brute-force with character set |
|
||||
| `hashcracker --hash <h> --wordlist <path> --rules` | Dictionary + mutation rules |
|
||||
| `hashcracker --hash <h> --wordlist <path> --salt <s>` | Crack salted hash |
|
||||
| `hashcracker --help` | Show all options |
|
||||
Try these — all crack instantly against the included wordlist:
|
||||
|
||||
| Hash | Type | Plaintext |
|
||||
|------|------|-----------|
|
||||
| `5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8` | SHA256 | password |
|
||||
| `8621ffdbc5698829397d97767ac13db3` | MD5 | dragon |
|
||||
| `ed9d3d832af899035363a69fd53cd3be8f71501c` | SHA1 | shadow |
|
||||
|
||||
```bash
|
||||
hashcracker --hash 8621ffdbc5698829397d97767ac13db3 --wordlist wordlists/10k-most-common.txt
|
||||
hashcracker --hash ed9d3d832af899035363a69fd53cd3be8f71501c --wordlist wordlists/10k-most-common.txt --rules
|
||||
hashcracker --hash 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 --bruteforce --charset lower --max-length 8
|
||||
```
|
||||
|
||||
## Learn
|
||||
|
||||
|
|
|
|||
|
|
@ -8,12 +8,15 @@ GREEN='\033[32m'
|
|||
CYAN='\033[36m'
|
||||
RED='\033[31m'
|
||||
BOLD='\033[1m'
|
||||
DIM='\033[2m'
|
||||
RESET='\033[0m'
|
||||
|
||||
info() { echo -e "${CYAN}[*]${RESET} $1"; }
|
||||
success() { echo -e "${GREEN}[✔]${RESET} $1"; }
|
||||
fail() { echo -e "${RED}[✖]${RESET} $1"; exit 1; }
|
||||
|
||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
install_deps() {
|
||||
if command -v apt-get &>/dev/null; then
|
||||
info "Detected apt (Debian/Ubuntu)"
|
||||
|
|
@ -34,6 +37,7 @@ install_deps() {
|
|||
}
|
||||
|
||||
build_project() {
|
||||
cd "${PROJECT_DIR}"
|
||||
info "Configuring release build..."
|
||||
cmake --preset release
|
||||
|
||||
|
|
@ -41,20 +45,27 @@ build_project() {
|
|||
cmake --build build/release
|
||||
}
|
||||
|
||||
install_binary() {
|
||||
info "Installing hashcracker to ~/.local/bin..."
|
||||
mkdir -p ~/.local/bin
|
||||
ln -sf "${PROJECT_DIR}/build/release/hashcracker" ~/.local/bin/hashcracker
|
||||
}
|
||||
|
||||
info "Installing dependencies..."
|
||||
install_deps
|
||||
|
||||
info "Building hashcracker..."
|
||||
build_project
|
||||
|
||||
install_binary
|
||||
|
||||
echo ""
|
||||
success "hashcracker built successfully!"
|
||||
echo ""
|
||||
echo -e "${BOLD}Usage:${RESET}"
|
||||
echo " ./build/release/hashcracker --hash <hash> --wordlist <path>"
|
||||
echo " ./build/release/hashcracker --hash <hash> --bruteforce --charset lower,digits"
|
||||
echo " ./build/release/hashcracker --hash <hash> --wordlist <path> --rules"
|
||||
echo " hashcracker --hash <hash> --wordlist wordlists/10k-most-common.txt"
|
||||
echo " hashcracker --hash <hash> --bruteforce --charset lower,digits"
|
||||
echo " hashcracker --hash <hash> --wordlist wordlists/10k-most-common.txt --rules"
|
||||
echo ""
|
||||
echo -e "${BOLD}Or use just:${RESET}"
|
||||
echo " just run -- --hash <hash> --wordlist <path>"
|
||||
echo -e " ${DIM}(Binary symlinked to ~/.local/bin/hashcracker)${RESET}"
|
||||
echo ""
|
||||
|
|
|
|||
|
|
@ -58,14 +58,17 @@ constexpr std::string_view BAR_RIGHT = "\u258C";
|
|||
|
||||
}
|
||||
|
||||
namespace icon {
|
||||
namespace symbol {
|
||||
|
||||
constexpr std::string_view BOLT = "\u26A1";
|
||||
constexpr std::string_view ARROW = "\u2192";
|
||||
constexpr std::string_view ARROW_RIGHT = "\u25B8";
|
||||
constexpr std::string_view DIAMOND = "\u25C6";
|
||||
constexpr std::string_view CHECK = "\u2713";
|
||||
constexpr std::string_view CROSS = "\u2717";
|
||||
constexpr std::string_view TIMER = "\u23F1";
|
||||
constexpr std::string_view HOURGLASS = "\u23F3";
|
||||
constexpr std::string_view CHART = "\U0001F4CA";
|
||||
constexpr std::string_view CHECK = "\u2714";
|
||||
constexpr std::string_view CROSS = "\u2716";
|
||||
constexpr std::string_view TRIANGLE_UP = "\u25B2";
|
||||
constexpr std::string_view STAR = "\u2726";
|
||||
constexpr std::string_view DIVIDER_CHAR = "\u2501";
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,13 +137,13 @@ void Progress::update() {
|
|||
config::color::YELLOW, render_bar(fraction, bar_width),
|
||||
fraction * 100.0, config::color::RESET);
|
||||
std::println(" {} {} {} {} {} {} {} ~{}{}",
|
||||
config::icon::BOLT, config::color::CYAN,
|
||||
config::symbol::DIAMOND, config::color::CYAN,
|
||||
format_speed(speed), config::color::RESET,
|
||||
config::icon::TIMER, config::color::CYAN,
|
||||
config::symbol::TIMER, config::color::CYAN,
|
||||
format_time(elapsed), format_time(eta),
|
||||
config::color::RESET);
|
||||
std::println(" {} {} {} / {} candidates{}",
|
||||
config::icon::CHART, config::color::CYAN,
|
||||
config::symbol::ARROW_RIGHT, config::color::CYAN,
|
||||
format_count(tested_val), format_count(total_),
|
||||
config::color::RESET);
|
||||
}
|
||||
|
|
@ -157,7 +157,7 @@ void Progress::print_cracked(const CrackResult& result) const {
|
|||
std::print("\033[3A\033[J");
|
||||
|
||||
std::println(" {}{} CRACKED {}{}{}",
|
||||
config::color::GREEN, config::icon::CHECK,
|
||||
config::color::GREEN, config::symbol::CHECK,
|
||||
std::string(30, '-'), config::color::RESET, "");
|
||||
std::println(" {}Password: {}{}{}",
|
||||
config::color::BOLD, config::color::GREEN,
|
||||
|
|
@ -184,7 +184,7 @@ void Progress::print_exhausted(std::string_view hash,
|
|||
std::print("\033[3A\033[J");
|
||||
|
||||
std::println(" {}{} EXHAUSTED {}{}{}",
|
||||
config::color::RED, config::icon::CROSS,
|
||||
config::color::RED, config::symbol::CROSS,
|
||||
std::string(30, '-'), config::color::RESET, "");
|
||||
std::println(" Hash: {}", hash);
|
||||
std::println(" Algorithm: {}", algorithm);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,419 @@
|
|||
abat-jour
|
||||
acqua-aria
|
||||
acqua-terra
|
||||
addizionatore-sottrattore
|
||||
after-shave
|
||||
agar-agar
|
||||
agit-prop
|
||||
ai-ai
|
||||
air-terminal
|
||||
anti-doping
|
||||
anti-trust
|
||||
aria-acqua
|
||||
aria-aria
|
||||
aria-sott
|
||||
aria-spazio
|
||||
aria-superficie
|
||||
aria-terra
|
||||
arriere-gout
|
||||
arriere-pensee
|
||||
assemblatore-disassemblatore
|
||||
assemblatori-disassemblatori
|
||||
assiro-babilonese
|
||||
assiro-babilonesi
|
||||
aye-aye
|
||||
baby-doll
|
||||
baby-dolls
|
||||
baby-sitter
|
||||
baby-sitters
|
||||
baby-sitting
|
||||
bas-bleu
|
||||
basket-ball
|
||||
beauty-case
|
||||
beauty-cases
|
||||
be-bop
|
||||
best-seller
|
||||
best-sellers
|
||||
bio-bio
|
||||
bird-watching
|
||||
bla-bla
|
||||
black-bottom
|
||||
black-out
|
||||
black-outs
|
||||
bloc-notes
|
||||
blocs-notes
|
||||
blue-jeans
|
||||
boogie-woogie
|
||||
bottom-up
|
||||
bow-window
|
||||
bow-windows
|
||||
boy-friend
|
||||
boy-friends
|
||||
boy-scout
|
||||
boy-scouts
|
||||
brain-trust
|
||||
brain-trusts
|
||||
bric-a-brac
|
||||
bughi-bughi
|
||||
burali-forti
|
||||
buzzati-traverso
|
||||
bye-bye
|
||||
calcio-balilla
|
||||
call-girl
|
||||
call-girls
|
||||
cavalli-vapore
|
||||
cavallo-vapore
|
||||
chaise-longue
|
||||
check-in
|
||||
check-ins
|
||||
check-up
|
||||
check-ups
|
||||
chemin-de-fer
|
||||
che-que
|
||||
cherry-brandies
|
||||
cherry-brandy
|
||||
chewing-gum
|
||||
cocktail-parties
|
||||
cocktail-party
|
||||
cow-boy
|
||||
cow-boys
|
||||
cross-country
|
||||
de-escalation
|
||||
demi-sec
|
||||
demi-secs
|
||||
dietro-front
|
||||
disc-jockey
|
||||
disc-jockeys
|
||||
double-face
|
||||
drive-in
|
||||
drive-ins
|
||||
emTeX
|
||||
end-to-end
|
||||
eye-liner
|
||||
fall-out
|
||||
fall-outs
|
||||
ferry-boat
|
||||
ferry-boats
|
||||
fifty-fifty
|
||||
first-ladies
|
||||
first-lady
|
||||
flip-book
|
||||
flip-flop
|
||||
folk-song
|
||||
fox-terrier
|
||||
fox-terriers
|
||||
fox-trot
|
||||
full-time
|
||||
garden-parties
|
||||
garden-party
|
||||
gin-fizz
|
||||
gin-fizzes
|
||||
globe-trotter
|
||||
globe-trotters
|
||||
go-kart
|
||||
go-karts
|
||||
grammo-atomi
|
||||
grammo-atomo
|
||||
grammo-molecola
|
||||
grammo-molecole
|
||||
greco-ortodossa
|
||||
greco-ortodosse
|
||||
greco-ortodossi
|
||||
greco-ortodosso
|
||||
greco-romana
|
||||
greco-romane
|
||||
greco-romani
|
||||
greco-romano
|
||||
grill-room
|
||||
grill-rooms
|
||||
gros-grain
|
||||
gros-grains
|
||||
half-duplex
|
||||
haute-couture
|
||||
hi-fi
|
||||
hors-d
|
||||
hula-hop
|
||||
hully-gully
|
||||
ice-field
|
||||
ice-fields
|
||||
ispano-americana
|
||||
ispano-americane
|
||||
ispano-americani
|
||||
ispano-americano
|
||||
jam-session
|
||||
jam-sessions
|
||||
jet-set
|
||||
jet-society
|
||||
juke-box
|
||||
juke-boxes
|
||||
jumbo-jet
|
||||
jumbo-jets
|
||||
jupe-culotte
|
||||
jupes-culottes
|
||||
know-how
|
||||
k-way
|
||||
lab-fermenti
|
||||
lab-fermento
|
||||
lap-top
|
||||
latino-americana
|
||||
latino-americane
|
||||
latino-americani
|
||||
latino-americano
|
||||
lay-out
|
||||
lay-outs
|
||||
lecca-lecca
|
||||
levi-strauss
|
||||
lib-lab
|
||||
long-playing
|
||||
make-up
|
||||
mangia-e-bevi
|
||||
metal-detector
|
||||
minimo-massimo
|
||||
mon-khmer
|
||||
moto-sidecar
|
||||
music-hall
|
||||
music-halls
|
||||
night-club
|
||||
night-clubs
|
||||
non-allineamenti
|
||||
non-allineamento
|
||||
non-allineata
|
||||
non-allineate
|
||||
non-allineati
|
||||
non-allineato
|
||||
non-belligerante
|
||||
non-belligeranti
|
||||
non-belligeranza
|
||||
non-fumatore
|
||||
non-fumatori
|
||||
non-fumatrice
|
||||
non-fumatrici
|
||||
off-limits
|
||||
off-line
|
||||
off-shore
|
||||
old-fashioned
|
||||
one-step
|
||||
on-line
|
||||
op-art
|
||||
open-end
|
||||
orient-express
|
||||
osco-umbra
|
||||
osco-umbre
|
||||
osco-umbri
|
||||
osco-umbro
|
||||
pace-maker
|
||||
pace-makers
|
||||
pap-test
|
||||
pap-tests
|
||||
part-time
|
||||
passe-partout
|
||||
passe-partouts
|
||||
petit-beurre
|
||||
petit-four
|
||||
petit-gris
|
||||
petits-fours
|
||||
petits-gris
|
||||
piano-bar
|
||||
piano-concava
|
||||
piano-concave
|
||||
piano-concavi
|
||||
piano-concavo
|
||||
piano-convessa
|
||||
piano-convesse
|
||||
piano-convessi
|
||||
piano-convesso
|
||||
piano-terreno
|
||||
pian-parallela
|
||||
pian-parallele
|
||||
pian-paralleli
|
||||
pian-parallelo
|
||||
pick-up
|
||||
pick-ups
|
||||
pico-curie
|
||||
pied-a-terre
|
||||
pied-de-poule
|
||||
piglia-piglia
|
||||
pince-nez
|
||||
ping-pong
|
||||
pin-up
|
||||
pio-pio
|
||||
piro-piro
|
||||
play-off
|
||||
plein-air
|
||||
pocket-size
|
||||
pop-art
|
||||
pop-artista
|
||||
pop-artisti
|
||||
pop-corn
|
||||
pop-jazz
|
||||
porte-enfant
|
||||
post-it
|
||||
post-politica
|
||||
post-sessantottesca
|
||||
post-sessantottesche
|
||||
post-sessantotteschi
|
||||
post-sessantottesco
|
||||
post-sessantottina
|
||||
post-sessantottine
|
||||
post-sessantottini
|
||||
post-sessantottino
|
||||
post-sincronizzando
|
||||
post-sincronizzare
|
||||
post-sincronizzata
|
||||
post-sincronizzate
|
||||
post-sincronizzati
|
||||
post-sincronizzato
|
||||
post-sincronizzazione
|
||||
pot-au-feu
|
||||
pot-pourri
|
||||
pots-pourris
|
||||
pre-maman
|
||||
press-agent
|
||||
press-agents
|
||||
pret-a-porter
|
||||
real-time
|
||||
rendez-vous
|
||||
rimskij-korsakov
|
||||
ritmo-melodica
|
||||
ritmo-melodiche
|
||||
ritmo-melodici
|
||||
ritmo-melodico
|
||||
robbe-grillet
|
||||
robe-manteau
|
||||
robes-manteaux
|
||||
rolls-royce
|
||||
romano-barbarica
|
||||
romano-barbariche
|
||||
romano-barbarici
|
||||
romano-barbarico
|
||||
romano-germanica
|
||||
romano-germaniche
|
||||
romano-germanici
|
||||
romano-germanico
|
||||
sainte-beuve
|
||||
saint-exupery
|
||||
saint-honore
|
||||
saint-just
|
||||
saint-malo
|
||||
saint-moritz
|
||||
saint-simon
|
||||
saint-tropez
|
||||
saint-vincent
|
||||
savoir-faire
|
||||
savoir-vivre
|
||||
scapolo-omerale
|
||||
scapolo-omerali
|
||||
sci-alpinismo
|
||||
sci-alpinista
|
||||
sci-alpinisti
|
||||
sci-alpinistica
|
||||
sci-alpinistiche
|
||||
sci-alpinistici
|
||||
sci-alpinistico
|
||||
self-control
|
||||
self-government
|
||||
self-made
|
||||
self-service
|
||||
sex-shop
|
||||
show-down
|
||||
show-downs
|
||||
show-woman
|
||||
show-women
|
||||
sit-in
|
||||
sit-ins
|
||||
skate-board
|
||||
skate-boards
|
||||
ski-lift
|
||||
ski-lifts
|
||||
skin-popping
|
||||
ski-stopper
|
||||
ski-stoppers
|
||||
sleeping-car
|
||||
sleeping-cars
|
||||
slot-machine
|
||||
slot-machines
|
||||
snack-bar
|
||||
soft-core
|
||||
sotto-directory
|
||||
spazio-tempo
|
||||
spy-story
|
||||
start-stop
|
||||
stop-and-go
|
||||
strip-tease
|
||||
strip-teases
|
||||
stunt-man
|
||||
stunt-men
|
||||
sud-est
|
||||
sud-occidentale
|
||||
sud-occidentali
|
||||
sud-orientale
|
||||
sud-orientali
|
||||
sud-ovest
|
||||
super-ego
|
||||
super-io
|
||||
super-utile
|
||||
szent-gyorgyi
|
||||
tabacco-dipendente
|
||||
tabacco-dipendenti
|
||||
take-off
|
||||
take-over
|
||||
tam-tam
|
||||
tan-tan
|
||||
tap-in
|
||||
ta-pun
|
||||
task-force
|
||||
task-forces
|
||||
taxi-girl
|
||||
taxi-girls
|
||||
teach-in
|
||||
tea-room
|
||||
tea-rooms
|
||||
teen-ager
|
||||
teen-agers
|
||||
temple-block
|
||||
temporo-mandibolare
|
||||
terra-aria
|
||||
terra-terra
|
||||
testa-coda
|
||||
testa-croce
|
||||
tete-a-tete
|
||||
tibeto-birmana
|
||||
tibeto-birmane
|
||||
tibeto-birmani
|
||||
tibeto-birmano
|
||||
time-out
|
||||
time-sharing
|
||||
top-down
|
||||
toulouse-lautrec
|
||||
trait-d
|
||||
trench-coat
|
||||
trench-coats
|
||||
tric-trac
|
||||
trompe-l
|
||||
tse-tse
|
||||
t-shirt
|
||||
tupi-guarani
|
||||
twin-set
|
||||
twin-sets
|
||||
two-step
|
||||
tze-tze
|
||||
up-to-date
|
||||
video-clip
|
||||
video-clips
|
||||
villa-lobos
|
||||
vis-a-vis
|
||||
vol-au-vent
|
||||
wagon-lit
|
||||
wagon-lits
|
||||
wagon-restaurant
|
||||
wagon-restaurants
|
||||
walkie-talkie
|
||||
walkie-talkies
|
||||
wash-and-wear
|
||||
week-end
|
||||
week-ends
|
||||
whisky-a-gogo
|
||||
willy-nilly
|
||||
yes-man
|
||||
ye-ye
|
||||
yo-yo
|
||||
Loading…
Reference in New Issue