1. 简介

rar 压缩文件资源又不少是被加密的,密码通常也比较简单,我们可以通过暴力破解的方式来获取,通常耗时也比较小。

2. 使用说明

2.1 基本语法

rar-bruteforce-crack.py [--start START] [--stop STOP] [--verbose VERBOSE] [--alphabet ALPHABET] [--file FILE]
  • –start START 设置密码长度位数的最小值;
  • –stop STOP 设置密码长度位数的最大值;
  • –verbose VERBOSE 设置是否显示破解的过程;
  • –alphabet ALPHABET 设置密码的组成集合;
  • – file FILE 设置待破解的rar压缩文件

2.1 密码长度

可以大致估算一下密码的位数,一般不会很长,绝大部分都是3 ~ 10位的密码,则 --start 4 --stop 10 .

2.2 设置是否显示破解过程

--verbose 设置为 True 时将显示破解的详细过程,默认是不显示的

2.3 设置密码的组成集合

--alphabet 用于设置密码的组成集合,默认的密码是由 0123456789 这些数字组成的。
可以根据需要设置,如设置成数字加小写字母,则 --alphabet 0123456789abcdefghijklmnopqrstuvwxyz .

2.4 设置文件

如要对 rartest.rar 这个rar压缩文件解密即解压需要设置 --file rartest.rar .

3. 例子

加密压缩

my_directory 文件夹下有3个文件 file1.txtfile2.txtfile3.txt,将 my_directory 文件夹下文件全部压缩成 rartest.rar 文件,并且使用密码:

rar a rartest.rar my_directory/* -p

两次输入压缩密码得到压缩文件 rartest.rar.

破解压缩密码

python3 rar-bruteforce-crack.py --start 4 --stop 10 --alphabet 0123456789 --file rartest.rar --verbose True

开始暴力破解

... ...

可以看到得到了压缩密码 “2351”

解压文件

unrar x rartest.rar

成功解压!

4. 代码

from argparse import ArgumentParser
from itertools import chain, product
from os.path import exists
from string import digits, ascii_lowercase, ascii_uppercase, ascii_letters, printable
from subprocess import PIPE, Popen
from time import timechars = (# 默认的密码只来自数字 "0123456789"digits# 若需要更多的组合可加上如下# 若要加上小写英文字母 "abcdefghijklmnopqrstuvwxyz" 的排列组合# digits + ascii_lowercase# 若要加上大小写英文字母 ascii_uppercase# digits + ascii_lowercase + ascii_uppercase# 若要加上标点符号和空白号,直接用string库下的 printable# printable
)
special_chars = "();<>`|~\"&\'}]"parser = ArgumentParser(description='Python combination generator to unrar')
parser.add_argument('--start',help='Number of characters of the initial string [1 -> "a", 2 -> "aa"]',type=int,
)parser.add_argument('--stop',help='Number of characters of the final string [3 -> "aaa"]',type=int,
)parser.add_argument('--verbose', help='Show combintations', default=False, required=False
)parser.add_argument('--alphabet',help='alternative chars to combinations',default=chars,required=False,
)parser.add_argument('--file', help='.rar file [file.rar]', type=str)args = parser.parse_args()def generate_combinations(alphabet, length, start=1):"""Generate combinations using alphabet."""yield from (''.join(string)for string in chain.from_iterable(product(alphabet, repeat=x) for x in range(start, length + 1)))def format(string):"""Format chars to write them in shell."""formated = map(lambda char: char if char not in special_chars else f'\\{char}', string)return ''.join(formated)if __name__ == '__main__':if not exists(args.file):raise FileNotFoundError(args.file)if args.stop < args.start:raise Exception('Stop number is less than start')start_time = time()for combination in generate_combinations(args.alphabet, args.stop, args.start):formated_combination = format(combination)if args.verbose:print(f'Trying: {combination}')cmd = Popen(f'unrar t -p{formated_combination} {args.file}'.split(),stdout=PIPE,stderr=PIPE,)out, err = cmd.communicate()if 'All OK' in out.decode():print(f'Password found: {combination}')print(f'Time: {time() - start_time}')exit()

参考文献

[1] https://github.com/dunossauro/PyRarCrack

rar压缩文件暴力破解相关推荐

  1. zip压缩文件暴力破解

    对于一个zip格式的压缩包,默认密码是6位数字.暴力破解的基本思路是,调用Python中的zipfile模块的trypassword函数,尝试从0到999999的所有数字,成功解压时即为相应的压缩密码 ...

  2. archpr 压缩文件暴力破解

    想看一个教程突然发现压缩文件密码忘记了,就想用advanced rar password recovery  工具破解. 破解速度太慢,等的花都谢了的感觉,等破解出来继续记录. 思考解决方法: 1.提 ...

  3. zip、rar压缩文件密码破解——使用ARCHPR Professional Edition

    直链下载地址: https://pan.abn.cc/weiyun/down.php?u=82441366e3c1f43fc69210e8ece93470.undefined.zip (压缩包内含解压 ...

  4. python 实现rar包的暴力破解压缩

    python 实现rar包的暴力破解压缩 环境依赖 win10 下载安装设置环境变量 win10 下载地址:http://www.rarlab.com/rar/UnRARDLL.exe 并设置为环境变 ...

  5. 破解rar压缩文件密码(Windows环境)

    Unrar解压rar包 最近在下载很多附件,附件中有很多的格式,.doc,.xls,rar,zip等等.在处理这些附件的时候还是遇到了很多的坑,这里记录一下,希望对后来的朋友有所帮助. Unrar解压 ...

  6. 20220208--CTF MISC-- BUUCTF--二维码 1--binwalk-john-(工具的使用:分析文件/暴力破解压缩包密码)

    MISC-- BUUCTF–二维码 1 这题首先下载文件,解压: 微信扫描了一下这个二维码,得到: secret is here 打开kali ,首先用binwalk分析该文件 命令: binkwal ...

  7. 在Linux服务器上解压rar压缩文件

    Linux服务器上不自带解压rar文件的指令,需要自行下载rar工具包. 1. 下载rar工具包(两种方法) rarlab官网:rar官网地址 一般首选这些,现在的服务器差不多都是64位的.我选的红框 ...

  8. ubuntu18.04怎么解压rar压缩文件

    ubuntu18.04怎么解压rar压缩文件 今天在自己的ubuntu18.04中得到一个rar的压缩文件,在windows下使用的winrar软件,在这里又安装不上,后来发现有一些开源的解压软件可以 ...

  9. Ubuntu下解压rar压缩文件

    在Ubuntu系统中的文件夹下或者命令行中直接解压rar压缩文件会报错,需要安装一些软件方可,安装命令如下: sudo apt-get install rar sudo apt-get install ...

最新文章

  1. 对顶层生存空间的考虑---及蜷缩在内层的EJB
  2. java面向对象编程知识点总结
  3. Flink的基于ValueState的状态机
  4. poj Muddy Fields
  5. mysql外键排序规则_mysql创建外键出错(注意数据库表字段排序)
  6. 【转载】关系型数据库设计范式
  7. Java 语言的几个缺陷(个人感觉)
  8. 创建第一个Djiago
  9. vue中input多选_vue.js动态添加删除文本框input、下拉框select、单选radio、多选checkbox的方案。...
  10. 初识kmp算法(呕心沥血之文----看视频+总结)
  11. 北大计算机考研题一般出自哪里,北大计算机考研常见问题解答
  12. 浅谈文字编码和Unicode
  13. Q3中国网游业观察:腾讯网易春风得意
  14. 学习July博文总结——支持向量机(SVM)的深入理解(下)
  15. 使用mybatis拦截器实现业务层和持久化层的数据处理、加密、解密、脱敏。
  16. TLD(Tracking-Learning-Detection)一种目标跟踪算法(相关资料很全)
  17. PD win10虚拟机 主机互联
  18. 苹果笔记本有uefi启动吗_如何更换Windows 10的启动logo
  19. java 简单框架_最简单的Java框架
  20. C语言|博客作业06

热门文章

  1. 一个悄然崛起的国产软件,低调又强大!
  2. PELCO-D与PELCO-P协议介绍
  3. java版 SpringCloud 之Eclipse 教程
  4. 前端把其他格式图片转成png,jpg格式后下载,下载txt文件
  5. SUSCTF2022WP
  6. 使用正则校验字符串中多个电话号码的方法
  7. C#大型医院HIS系统源码 医院信息管理系统源码 C/S架构 VS2013+sql2012
  8. 浅谈服务器虚拟化的七大好处
  9. 微信公众号最佳实践 ( 8.8)智能聊天机器人
  10. 动态网站的制作与设计_【大师活动】设计及制作动态Logo