golang 爆破破解 rar5 压缩文件密码

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

hashcat怎么解压缩包密码

rar5 网上大多数爆破软件不支持,只支持rar5以下的。所以自己写了一个爆破程序,考虑性能,用Golang去写,用到Golang里面的GO程。Go没有支持rar5解压的包,故调用cmd命令去执行。

hashcat怎么解压缩包密码

cmd := exec.Command("unrar", "e","-p"+pass,rarpath,"D:/test")  //解压出来保存 D/test 上
out, _ := cmd.Output()
fmt.Println(string(out))
    passpath := "pass.txt" 
    fp, _ := os.OpenFile(passpath , os.O_RDONLY, 6)
	defer fp.Close()
	// 创建文件的缓存区
	r := bufio.NewReader(fp)
	for {
		pass, err2 := r.ReadBytes('n')
		if err2 == io.EOF {      //文件末尾
			break
		}
		pass = pass[:len(pass)-2]   // 去除末尾 /n
		fmt.Println(pass)
	}

1、先下载WinRAR压缩软件,给cmd命令调动。
2、把WinRAR加入环境变量(方便cmd命令使用unrar)。
3、测试一下是否可以调用。
4、加载密码集,密码自己生成,可以参考我用Python写的密码生成器。

package main
import (
	"bufio"
	"fmt"
	"io"
	"os"
	"os/exec"
	"time"
)
var passpath  string= "C:/Go/src/GoItem/pass.txt"   //密码集 路径
var rarpath string= "C:/Go/src/GoItem/aa.rar"    	// rar 文件路径
var password = make(chan string)   //创建管道,接收密码
var isOver = make(chan bool) //判断是否退出
func main() {
	go passtxt(passpath)
Loop:
	for{
		select {
		case rarpass:= <-password :
			go cmdshell(rarpath,rarpass)
		case  <-time.After(time.Second * time.Duration(1)) :
			break Loop
		case <- isOver:
			break Loop
		}
	}
}
func cmdshell(rarpath string,pass string){
		cmd := exec.Command("unrar", "e","-p"+pass,rarpath,"D:/test")  //解压出来保存 D/test 上
		out, _ := cmd.Output()
		fmt.Println(pass)
		if  len(out) == 248{    //len 248 为成功,每个人不同
			fmt.Printf("密码为:%s n",pass)
			isOver<-true  // 成功后退出
		}
}
func passtxt(passpath string) {
	fp, _ := os.OpenFile(passpath , os.O_RDONLY, 6)
	defer fp.Close()
	// 创建文件的缓存区
	r := bufio.NewReader(fp)
	for {
		pass, err2 := r.ReadBytes('n')
		if err2 == io.EOF {      //文件末尾
			break
		}
		pass = pass[:len(pass)-2]   // 去除末尾 /n
		password <- string(pass)
	}
}

赞(0)