
Ada arsip dan Anda perlu mengekstrak isinya, tetapi kata sandi dilupakan. Anda dapat google dan mempercayai berbagai program ( satu , dua , tiga ), tetapi
Satu-satunya cara untuk memecahkan arsip RAR adalah kekerasan.
Data awal
Arsip, kamus kata sandi (dan jika Anda memasukkan% nama pengguna% dalam arsip, jangan lupa untuk menambahkan yang sering Anda gunakan, hanya secara lokal! ).
Prosedur
Dari artikel sebelumnya:
β , 262144 SHA1, WinRAR ( AES) ( ). , CRC32, , . β , , . RAR β Β« Β».
. WinRAR , .
Oleh karena itu, algoritme dalam versi pertama akan sederhana: buka file dengan kata sandi dan ulangi kata sandi untuk arsip sampai rusak.
Jangan lupa bahwa kami menggunakan Go .
File kata sandi
dictFile, err := os.Open(dictionary)
if err != nil {
log.Fatalln(err)
}
defer dictFile.Close()
Arsipkan sendiri
zipr, err := zip.OpenReader(zipfile)
if err != nil {
log.Fatal(err)
}
Dan kita super algoritma
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)
}
}
Dan jika kata sandi ada di arsip - voila!
Blackjack dan versi multithreading
Ada versi yang lebih menarik - dengan multithreading dan goroutine.
The repositori memiliki 63 utilitas yang lebih canggih tentang berbagai topik. Dan jika Anda memiliki ide apa yang harus ditambahkan - tulis.
UPD
Pengurangan berganda adalah cara yang paling dapat diandalkan untuk menghindari kesalahan. Terima kasih kepada semua orang yang merespons.