RarFile Python 模块

RarFile Python Module

我正在尝试为 rar 文件制作一个简单的暴力破解器。我的代码是...

import rarfile

file = input("Password List Directory: ")
rarFile = input("Rar File: ")

passwordList = open(file,"r")


for i in passwordList:

    try :
        rarfile.read(rarFile, psw=i)
        print('[+] Password Found: '+i)

    except Exception as e:
        print('[-] '+i+' is not a password ')

passwordList.close()

我认为这与我对模块的使用有关,因为当我输入我 10000% 确定包含 rarFile 密码的密码列表时,它会打印异常。

这里真正的问题是您正在捕获所有异常,而不仅仅是您想要的异常。所以使用 except rarfile.PasswordRequired: 这将告诉您错误不是缺少密码。相反,rarfile 模块中没有函数 read

看看一些 Documentation。 Rar 加密是针对每个文件,而不是每个存档。

您需要从 RarFile 创建一个对象 class 并在存档中的每个文件上尝试密码。 (或者如果您知道它是加密的,则只是第一个)

import rarfile

file = input("Password List Directory: ")
rarFilename = input("Rar File: ")

rf = rarfile.RarFile(rarFilename)
passwordList = open(file,"r")
first_file =  next(rf.infolist)

for i in passwordList:
    password = i.rstrip()        
    try:
        rf.open(first_file, psw=password)
        print(password, "found")
    except rarfile.PasswordRequired:
        print(password,"is not a password")

当您打开文件并从中读取行时,"new line" 字符会保留 在该行的末尾。这需要从每一行中删除。

for i in passwordList:
    password = i.rstrip()
    try :
        rarfile.read(rarFile, psw=password)
        print('[+] Password Found: '+password)