Comment déchiffrer une archive de mots de passe vous-même

CPAP


Il existe une archive et vous devez extraire le contenu, mais le mot de passe est oublié. Vous pouvez google et faire confiance à différents programmes ( un , deux , trois ), mais

La seule façon de casser l'archive RAR est la force brute.

Donnée initiale


Archive, dictionnaire de mot de passe (et si vous mettez% username% dans l'archive, n'oubliez pas d'ajouter vos fichiers fréquemment utilisés, uniquement localement! ).


Procédure


Des articles précédents:


– , 262144 SHA1, WinRAR ( AES) ( ). , CRC32, , . – , , . RAR — « ».

. WinRAR , .

Par conséquent, l'algorithme dans la première version sera simple: ouvrez le fichier avec des mots de passe et parcourez les mots de passe de l'archive jusqu'à ce qu'il se casse.


N'oubliez pas que nous utilisons Go .
Fichier de mot de passe


dictFile, err := os.Open(dictionary)
if err != nil {
    log.Fatalln(err)
    }
defer dictFile.Close()

Se archiver


zipr, err := zip.OpenReader(zipfile)
if err != nil {
    log.Fatal(err)
}

Et notre super algorithme


scanner := bufio.NewScanner(dictFile)
for scanner.Scan() {
    pass := scanner.Text()
    for _, z := range zipr.File {
        z.SetPassword(pass)
        _, err := z.Open()
        //   
        if err == nil {
            println("[+] Found password")
            println("[+] Password = " + pass)
            os.Exit(0)
        }
    }

Et si le mot de passe est dans l'archive - le tour est joué!


Version Blackjack et multithreading


Il existe une version encore plus intéressante - avec le multithreading et les goroutines.


Le référentiel contient 63 utilitaires plus sophistiqués sur divers sujets. Et si vous avez des idées à ajouter - écrivez.


UPD


La soustraction multiple est le moyen le plus fiable pour éviter les erreurs. Merci à tous ceux qui ont répondu.


All Articles