Hashashin is a library which implements algorithms for basic block and graph aware hashing to allow security researchers to conduct comparisons and program analysis across different compiled binaries.

In our blog on Binary Hashing: Motivations and Algorithms, we described some examples of where binary hashing can help solve problems and compared a number of algorithms for both basic block and graph aware hashing.

One use case, as described in our blog on Hashashin: Using Binary Hashing to Port Annotations, is to port Binary Ninja annotations from one binary to another.

The library is also used by our tool Ninjadiff, which provides binary diffing integrated into BinaryNinja.

Open Source: View on our GitHub