Cómo descifrar un archivo de contraseña usted mismo

CPAP


Hay un archivo y necesita extraer el contenido, pero se olvida la contraseña. Puedes buscar en Google y confiar en diferentes programas ( uno , dos , tres ), pero

La única forma de descifrar el archivo RAR es la fuerza bruta.

Datos iniciales


Archivo, diccionario de contraseñas (y si coloca% username% en el archivo, ¡no olvide agregar los que usa con frecuencia, solo localmente! ).


Procedimiento


De artículos anteriores:


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

. WinRAR , .

Por lo tanto, el algoritmo en la primera versión será simple: abra el archivo con contraseñas e itere sobre las contraseñas del archivo hasta que se rompa.


No olvides que usamos Go .
Archivo de contraseña


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

Archivo en sí


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

Y nuestro súper algoritmo


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)
        }
    }

Y si la contraseña está en el archivo, ¡voila!


Blackjack y versión multihilo


Hay una versión aún más interesante , con subprocesos múltiples y gorutinas.


El repositorio tiene 63 utilidades más sofisticadas sobre diversos temas. Y si tiene ideas sobre qué agregar, escriba.


UPD


La sustracción múltiple es la forma más confiable de evitar errores. Gracias a todos los que respondieron.


All Articles