I am analyzing a malware at the moment which scans for a lot of filenames and ClassNames to recognize if it is under supervision or not.

My problem is, that all the filenames and ClassNames are stored as Hashes. Therefore i did some kind of dictionary attack (with a list of tools I know). It was very effective - but out of 20 hashes, i am still missing one!

I am searching for days now... it drives me crazy :D

As you can see, there are some tools missing in my list - can you complete it? Please think of your most favourite tools and take a look at the list - are they already in there? :)

Thank you very much in advance!

In case you need a list like this one day, feel free to use it.

  • If your current tools worked for 95%, chances are that that word is just not in your dictionary.
    – Jongware
    Feb 13, 2018 at 18:32
  • 1
    I added every tool to the list I ever used, then i looked up the ClassName of each and hashed it using the Algorithm above. Finally I compared the hashes to the list of hashes i extracted from the malware. Therefore yes, this last tool it is not in the list - that's exactly the problem since I do not know any more RE tools for Windows.
    – flood
    Feb 13, 2018 at 19:02

1 Answer 1


I would try a Z3 solver if simple bruteforcing fails. The hashing function doesn't seem that hard at the first glance. Of course there aren't any pre-made tools (I think) and a minimal use of your gray matter is required.


  • You can find a lot of material about using Z3 for reverse-engineering here: Yurichev's Blog. Quite interesting tool, indeed.
    – perror
    Feb 14, 2018 at 8:41
  • 2
    Vitaly, the problem is that Z3 might find whatever that creates that hash. I really doubt that the hash is cryptographically safe, thus, there will be a gazillion or more collisions. Feb 14, 2018 at 9:06
  • 1
    thanks! but yes, i had around 3000 collisions per hash within the first 12 hours of brute-forcing. anyway, thank you for the hint!
    – flood
    Feb 14, 2018 at 15:07
  • 1
    @joxeankoret I do not see a problem in collisions - find your gazillion and filter out the only (hopefully) valid one via some simple tool that checks for valid names. Extremely easy in Windows with blah.exe/dll/… name structure, and in Unices just look for alphanumeric space. This is a basic approach in "cryptanalysis". OP if you already have your collisions, then you're already half done, not need for Z3. Feb 23, 2018 at 8:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.