Currently using a hashlist of 2354 and dic size of 2322 (as an example).
Main changes are:
Removal of duplicates from dictionary on load.
Searchtable for the hash checking, cutting down searchspace time.
Moving SHA1 calc to minimise time spent doing it.
Thanks to gorim for helping with performance checking of the code.
Here is the result: attack.c [Updated]
------------------------------------------------------
Code: Select all
Edited - see below for newer version of code
This code also outputs all found function names into an xml file, this is for collecting them and easy collision checking later.
currently testing using following script:
------------------------------------------------------
#!/bin/bash
echo ------BUILDING--------
gcc attack.c -O3 -o attack
echo ------PROCESSING------
./attack sce hashlist.hsh dictionary.dic
------------------------------------------------------
which searches using prefix 'sce' ie kernel etc as words in dic file.
one final note: add a '0x00000000' and '0xffffffff' entries to your hash file. This solves a segfault some people reported.
tested on cygwin here.
Hope some can have some fun with this :))
Any comments/suggestions/inprovements welcome.
Next step for me is looking at optimising the dictionaries for each step.