In definitiva, il reverse engineering è il metodo più completo ed è certamente possibile. È inoltre disponibile un sito dedicato allo scambio di stack per il reverse engineering. Probabilmente, provando le password conosciute e verificando i valori hash risultanti, hai già iniziato a decodificare quel pezzo di software binario. Non c'è nulla di qualitativamente speciale alla decompilazione: ciò che costituisce il reverse engineering è il tentativo di comprensione, e tu hai fatto il primo passo su questa strada.
Per quanto riguarda la legalità, dipende molto dalla giurisdizione. Ciò che è tradizionalmente detto è che il reverse engineering a fini di interoperabilità è un gioco leale in Europa (a patto che tu usi, non pubblichi, i tuoi risultati) ma forse non negli Stati Uniti. Le leggi su questo argomento tendono a cambiare rapidamente, con cose come DMCA , quindi non fidarti troppo dell'affidabilità della tradizione.
I suggerisco che tu usi il software binario per verificare la password per ogni utente quando quell'utente accede, ma poi, dato che hai la password disponibile a quel punto, ri-scambialo con un altro, sicuro e completamente specificato funzione di hashing della password (ad esempio, bcrypt); questo nuovo hash verrà utilizzato per verificare ulteriori tentativi di accesso per quell'utente.
In questo modo, puoi gradualmente spostare tutti gli hash delle password su un nuovo sistema, e dopo un po 'sarai in grado di rimuovere le autorizzazioni dal vecchio sistema con l'hashing binario. In ogni caso, quel vecchio hashing è debole, poiché non è salato (un attaccante che può guardare il database sarà in grado di accelerare molto gli attacchi attraverso il parallelismo), quindi dovresti costruire un piano di transizione per un sistema più sicuro. / p>