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

rar5 网上大多数爆破软件不支持,只支持rar5以下的

所以自己写了一个爆破程序,考虑性能,用Golang 去写 ,用到Golang 里面的GO程

Go 没有支持 rar5  解压 的包,故调用 cmd 命令去执行

1、先下载 WinRAR 压缩软件 ,给 cmd 命令调动

2、把 WinRAR加入环境变量(方便 cmd 命令使用 unrar )

3、测试一下 是否可以调用

cmd := exec.Command("unrar", "e","-p"+pass,rarpath,"D:/test")  //解压出来保存 D/test 上
out, _ := cmd.Output()
fmt.Println(string(out))

4、加载密码集,密码自己生成 ,可以参考我用 python 写的 密码生成器

https://blog.csdn.net/a519395243/article/details/100574062

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

5、最后代码集合,用到Go 程

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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值