Como quebrar um arquivo de senhas sozinho

CPAP


Existe um arquivo e você precisa extrair o conteúdo, mas a senha é esquecida. Você pode pesquisar no Google e confiar em programas diferentes ( um , dois , três ), mas

A única maneira de quebrar o arquivo RAR é a força bruta.

Dados iniciais


Arquivar, dicionário de senhas (e se você colocar% username% no arquivo, não se esqueça de adicionar os usados ​​com frequência, apenas localmente! ).


Procedimento


De artigos anteriores:


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

. WinRAR , .

Portanto, o algoritmo na primeira versão será simples: abra o arquivo com senhas e repita as senhas do arquivo morto até que ele quebre.


Não esqueça que usamos o Go .
Arquivo de senha


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

Arquivar em si


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

E nosso super 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)
        }
    }

E se a senha estiver no arquivo - voila!


Versão blackjack e multithreading


Existe uma versão ainda mais interessante - com multithreading e goroutines.


O repositório possui 63 utilitários mais sofisticados em vários tópicos. E se você tem idéias o que adicionar - escreva.


UPD


Subtração múltipla é a maneira mais confiável de evitar erros. Obrigado a todos que responderam.


All Articles