• Stars
    star
    150
  • Rank 238,717 (Top 5 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Hash identification program.

houndsniff

Houndsniff is a minimal hash identification tool written in C that uses a database to compare a hash's features to characteristics of other common hashing algorithm results. It also prints out the percentages of likelihood for each hashing alogirthm to be the one that produced the hash based on their popularity. Email hashes that I missed at [email protected]

Website: https://mcdim.xyz/projects/hs.html

By Michael Constantine Dimopoulos, et al

with significant contributions by Christopher Wellons and revisions & suggestions by Martin K. as well as tuu and fizzie on ##c on Freenode.

Current version: 2.1

Screenshot

Clone, build & install

Dependencies:

  • readline - sudo apt install libreadline-dev for Debian & sudo pacman -S readline for Arch
$ git clone https://github.com/michaeldim02/houndsniff.git && cd houndsniff/src
$ sudo make install

Usage

houndsniff [HASH]

or, alternatively you can use the interactive shell:

houndsniff -i

You can exit with ^C.

You can also use scripting mode, which allows houndsniff to get hashes from stdin and print to stdout without much eye-candy:

echo "$hash" | houndsnif -s

Thanks

Thanks a lot to tuu and fizzie, as well as kurahaupo on ##c @ freenode for their revisions and suggestions! (even though I've yet to implement everything). I truly appreciate the help.

Donate

paypal

More donation options on the website: mcdim.xyz

Note

It is impossible to mathematically and algorithmically determine which specific algorithm produced a certain hash, and that's definitely not houndsniff is claiming to be able to do. A hash of a specific length and characterset could have been generated by a number of different hashing algorithms, and the hash itself doesn't give further information for one to determine whether or not it was produced by i.e MD5 or RIPEMD128, since both of these algorithms produce 128 bit hashes.

The only effective way to distinguish between two hashing algorithms that produce hashes of the same characteristics is through the popularity of each hashing algorithm. This is how the percentages are calculated.

The percentages are not arbitrary or random. They are hardcoded in the program in select.c, which may give the impression that they are random. This is not the case. They are determined through web search engine results. The numbers are combined into a sum which is then split accordingly into percentages. This process is done semi-automatically with the use a script.

So, generally, regarding the percentages:

  • houndsniff is not meant to give the impression that the percentages are calculated in real time. The percentages are hardcoded into the program.
  • Still, the percentages aren't random or arbitrary. I chose to hardcode them in because it would make the tool a lot lighter, easier to maintain, so that it wouldn't require an internet connection to run, and so that it wouldn't randomly bruteforce websites. Hash algorithm popularity does not change overnight, and if it did we would just update houndsniff, so there's no reason why the percentages should be calculated in real time, and not just hardcoded in.
  • the percentages are truncated to 2 decimal digits, so they may not add up to 100 exactly.
  • only known hashing algorithms are taken into consideration when calculated them.
  • and lastly, the percentages are, of course, only as accurate as the web search engine results.

More Repositories

1

Narthex

Modular personalized dictionary generator.
C
182
star
2

colloide

Colloide is a bruteforcing tool to find hidden pages, files and directories inside websites
Python
30
star
3

BlackJack

MCD's Black Jack is a password cracking tool for linux that cracks md5, sha1, sha256 and sha512 hashes. It uses the Dictionary bruteforcing method.
Python
20
star
4

IPLocator

IP Locator is a simple tool that allows you to find the geolocation of a device by its domain name or IP address
Shell
15
star
5

PAX

This tool creates a dictionary / wordlist with simple passwords based on the information that you have.
Python
11
star
6

BlackJack21

Blackjack21 is a minimal password cracker for UN*X operating systems.
C++
11
star
7

lykan

Password leak analysis program
C
10
star
8

CyberSpy

CyberSpy is a repository with innate and third party services that can be used for doxing, profiling & identity searching.
HTML
7
star
9

GoogleDorks

A small humble list that may help you
4
star
10

TermTicTacToe

A quick and easy Tic Tac Toe terminal based game written in C++ under 100 lines
C++
4
star
11

GreekPresentations

Make Greek presentations with pandoc + markdown + beamer/latex
2
star
12

hashid

Under development
Python
2
star
13

ServerWritingPermissionsTool

This is a minitool to set Server writing permissions for /var/www/html in Linux
Python
2
star
14

goPasscheck

How strong is your password, really?
Go
2
star
15

sxalert

Simple X Alert
C
2
star
16

Bomb-Dropper-Calculator

This is a C++ program that takes data from a text file and calculates the time a supposed aircraft should drop the explosives to hit the target - By MD & MCD
C++
1
star
17

athinaout

Ιστοσελίδα athinaout.xyz για το #ΣχεδιοΑθηναOUT
HTML
1
star
18

uni2_OOP

Java
1
star
19

Narthex-test

Testing script for Narthex
Shell
1
star
20

configs

My dotfiles
Shell
1
star
21

uni_asm

Computer architecture, microprocessors, assembly course exercises from uni
Assembly
1
star
22

caesars_cipher_python

A Caesar's Cipher implementation in Python
Python
1
star
23

QuadraticEquationCalculator

Quadratic Equation Calculator is a program that calculates equations of the form ax^2+ bx + c = 0
C++
1
star
24

entr

Here's my rewrite of entr in shell
Shell
1
star
25

x

Unix extractor script
Shell
1
star
26

UnixUtils

My rewritting of different Unix core utilities
C
1
star