python暴力解壓rar壓縮包

2021-09-07 09:38:55 字數 2057 閱讀 6241

寫**之前先吐槽一下rarfile這個第三方工具

因為unrar的**不公開所以python的解壓工具還要依賴c的動態鏈結庫,可非了我半天時間搜尋

具體解決辦法:

還有就是rarfile的extractall方法在遇到錯誤密碼的時候竟然沒有丟擲異常資訊,所以檢查密碼是否正確就只能觀察解壓路徑下檔案是否增加,感覺這個辦法好蠢。。。

#暴力破解壓縮包密碼rar版

from unrar import rarfile

def extractfile(file,password):

try:

file.extractall(pwd=password)

except:

pass

def main():

fp = rarfile.rarfile('file.rar')

f = open('pass.txt')

print('暴力破解開始請等待......')

for line in f.readlines():

line = line.strip('\n')

print(line)

extractfile(fp,line)

print('破解結束.....')

if __name__=='__main__':

main()

這裡可以公升級一下,使用optparse庫讓rar檔案、字典檔案以引數的形式傳給python**

公升級版

#暴力破解壓縮包密碼rar版

from unrar import rarfile

import optparse

def extractfile(file,password):

try:

#print(password)

file.extractall(pwd=password)

except:

pass

def main():

parser = optparse.optionparser("usage%org"+"-f -d ")

parser.add_option("-f",dest="rfile",type="string",help="specify rar file")

parser.add_option("-d",dest="dfile",type="string",help="specify dictionary file")

(option,args) = parser.parse_args()

rfile = option.rfile

dfile = option.dfile

if(rfile==none or dfile==none):

print(parser.usage)

exit(0)

fp = rarfile.rarfile(rfile)

f = open(dfile)

print('暴力破解開始請等待......')

for line in f.readlines():

line = line.strip('\n')

#print(line)

extractfile(fp,line)

print('破解結束.....')

if __name__=='__main__':

main()

示例:

帶解壓檔案和.py檔案 字典 在同一目錄

cmd輸入命令:

破解成功:

後記暴力破解依賴於字典中有正確密碼,如果壓縮包密碼特別複雜或者乾脆用中文當密碼破解的可能性就比較小了

這裡找到乙個更好的解決方法

C 壓縮解壓RAR壓縮檔案

using system.collections.generic using system.text using system.io using microsoft.win32 using system.diagnostics namespace uni.unicustoms 打包成rar publ...

Linux 壓縮 解壓縮RAR檔案

安裝 sudo apt get install unrar 解除安裝 sudo apt get remove unrar e將檔案解壓到當前目錄 例 rar e test.rar 注 用e解壓的話,不僅原來的file1.txt和file2.txt被解壓到當前目錄,就連dir1裡面的所有檔案也被解壓到...

Ubuntu 壓縮 解壓縮RAR檔案

在ubuntu 16.04下經常要用到壓縮 解壓縮rar檔案,每次都是網上搜尋教程,而且都沒有詳細解析每個命令的具體用法,現在詳細記下方法,以備再次用的時候方便的找到。因為 引數 e 和 x 經常用錯,特意記錄在此。ubuntu剛安裝的時候是不能解壓rar檔案的,只有在安裝了解壓工具之後,才可以解壓...