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
|
# ©AngelaMos | 2026
|
||||||
# .gitignore
|
# .gitignore
|
||||||
|
|
||||||
docs/
|
|
||||||
build/
|
build/
|
||||||
*.o
|
*.o
|
||||||
*.a
|
*.a
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,9 @@
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./install.sh
|
./install.sh
|
||||||
hashcracker --hash <hash> --wordlist /path/to/rockyou.txt
|
hashcracker --hash 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 \
|
||||||
|
--wordlist wordlists/10k-most-common.txt
|
||||||
|
# ✔ CRACKED: password
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!TIP]
|
> [!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`
|
> Install: `curl -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin`
|
||||||
|
|
||||||
## Commands
|
## Demo Hashes
|
||||||
|
|
||||||
| Command | Description |
|
Try these — all crack instantly against the included wordlist:
|
||||||
|---------|-------------|
|
|
||||||
| `hashcracker --hash <h> --wordlist <path>` | Dictionary attack against a hash |
|
| Hash | Type | Plaintext |
|
||||||
| `hashcracker --hash <h> --bruteforce --charset lower,digits` | Brute-force with character set |
|
|------|------|-----------|
|
||||||
| `hashcracker --hash <h> --wordlist <path> --rules` | Dictionary + mutation rules |
|
| `5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8` | SHA256 | password |
|
||||||
| `hashcracker --hash <h> --wordlist <path> --salt <s>` | Crack salted hash |
|
| `8621ffdbc5698829397d97767ac13db3` | MD5 | dragon |
|
||||||
| `hashcracker --help` | Show all options |
|
| `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
|
## Learn
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,15 @@ GREEN='\033[32m'
|
||||||
CYAN='\033[36m'
|
CYAN='\033[36m'
|
||||||
RED='\033[31m'
|
RED='\033[31m'
|
||||||
BOLD='\033[1m'
|
BOLD='\033[1m'
|
||||||
|
DIM='\033[2m'
|
||||||
RESET='\033[0m'
|
RESET='\033[0m'
|
||||||
|
|
||||||
info() { echo -e "${CYAN}[*]${RESET} $1"; }
|
info() { echo -e "${CYAN}[*]${RESET} $1"; }
|
||||||
success() { echo -e "${GREEN}[✔]${RESET} $1"; }
|
success() { echo -e "${GREEN}[✔]${RESET} $1"; }
|
||||||
fail() { echo -e "${RED}[✖]${RESET} $1"; exit 1; }
|
fail() { echo -e "${RED}[✖]${RESET} $1"; exit 1; }
|
||||||
|
|
||||||
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
install_deps() {
|
install_deps() {
|
||||||
if command -v apt-get &>/dev/null; then
|
if command -v apt-get &>/dev/null; then
|
||||||
info "Detected apt (Debian/Ubuntu)"
|
info "Detected apt (Debian/Ubuntu)"
|
||||||
|
|
@ -34,6 +37,7 @@ install_deps() {
|
||||||
}
|
}
|
||||||
|
|
||||||
build_project() {
|
build_project() {
|
||||||
|
cd "${PROJECT_DIR}"
|
||||||
info "Configuring release build..."
|
info "Configuring release build..."
|
||||||
cmake --preset release
|
cmake --preset release
|
||||||
|
|
||||||
|
|
@ -41,20 +45,27 @@ build_project() {
|
||||||
cmake --build build/release
|
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..."
|
info "Installing dependencies..."
|
||||||
install_deps
|
install_deps
|
||||||
|
|
||||||
info "Building hashcracker..."
|
info "Building hashcracker..."
|
||||||
build_project
|
build_project
|
||||||
|
|
||||||
|
install_binary
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
success "hashcracker built successfully!"
|
success "hashcracker built successfully!"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BOLD}Usage:${RESET}"
|
echo -e "${BOLD}Usage:${RESET}"
|
||||||
echo " ./build/release/hashcracker --hash <hash> --wordlist <path>"
|
echo " hashcracker --hash <hash> --wordlist wordlists/10k-most-common.txt"
|
||||||
echo " ./build/release/hashcracker --hash <hash> --bruteforce --charset lower,digits"
|
echo " 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 --rules"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BOLD}Or use just:${RESET}"
|
echo -e " ${DIM}(Binary symlinked to ~/.local/bin/hashcracker)${RESET}"
|
||||||
echo " just run -- --hash <hash> --wordlist <path>"
|
|
||||||
echo ""
|
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 TIMER = "\u23F1";
|
||||||
constexpr std::string_view HOURGLASS = "\u23F3";
|
constexpr std::string_view TRIANGLE_UP = "\u25B2";
|
||||||
constexpr std::string_view CHART = "\U0001F4CA";
|
constexpr std::string_view STAR = "\u2726";
|
||||||
constexpr std::string_view CHECK = "\u2714";
|
constexpr std::string_view DIVIDER_CHAR = "\u2501";
|
||||||
constexpr std::string_view CROSS = "\u2716";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,13 +137,13 @@ void Progress::update() {
|
||||||
config::color::YELLOW, render_bar(fraction, bar_width),
|
config::color::YELLOW, render_bar(fraction, bar_width),
|
||||||
fraction * 100.0, config::color::RESET);
|
fraction * 100.0, config::color::RESET);
|
||||||
std::println(" {} {} {} {} {} {} {} ~{}{}",
|
std::println(" {} {} {} {} {} {} {} ~{}{}",
|
||||||
config::icon::BOLT, config::color::CYAN,
|
config::symbol::DIAMOND, config::color::CYAN,
|
||||||
format_speed(speed), config::color::RESET,
|
format_speed(speed), config::color::RESET,
|
||||||
config::icon::TIMER, config::color::CYAN,
|
config::symbol::TIMER, config::color::CYAN,
|
||||||
format_time(elapsed), format_time(eta),
|
format_time(elapsed), format_time(eta),
|
||||||
config::color::RESET);
|
config::color::RESET);
|
||||||
std::println(" {} {} {} / {} candidates{}",
|
std::println(" {} {} {} / {} candidates{}",
|
||||||
config::icon::CHART, config::color::CYAN,
|
config::symbol::ARROW_RIGHT, config::color::CYAN,
|
||||||
format_count(tested_val), format_count(total_),
|
format_count(tested_val), format_count(total_),
|
||||||
config::color::RESET);
|
config::color::RESET);
|
||||||
}
|
}
|
||||||
|
|
@ -157,7 +157,7 @@ void Progress::print_cracked(const CrackResult& result) const {
|
||||||
std::print("\033[3A\033[J");
|
std::print("\033[3A\033[J");
|
||||||
|
|
||||||
std::println(" {}{} CRACKED {}{}{}",
|
std::println(" {}{} CRACKED {}{}{}",
|
||||||
config::color::GREEN, config::icon::CHECK,
|
config::color::GREEN, config::symbol::CHECK,
|
||||||
std::string(30, '-'), config::color::RESET, "");
|
std::string(30, '-'), config::color::RESET, "");
|
||||||
std::println(" {}Password: {}{}{}",
|
std::println(" {}Password: {}{}{}",
|
||||||
config::color::BOLD, config::color::GREEN,
|
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::print("\033[3A\033[J");
|
||||||
|
|
||||||
std::println(" {}{} EXHAUSTED {}{}{}",
|
std::println(" {}{} EXHAUSTED {}{}{}",
|
||||||
config::color::RED, config::icon::CROSS,
|
config::color::RED, config::symbol::CROSS,
|
||||||
std::string(30, '-'), config::color::RESET, "");
|
std::string(30, '-'), config::color::RESET, "");
|
||||||
std::println(" Hash: {}", hash);
|
std::println(" Hash: {}", hash);
|
||||||
std::println(" Algorithm: {}", algorithm);
|
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