目录
简介:
破解rar和zip压缩包。Windows下使用PyCharm软件。
1.步骤
1.环境
- 指令pip install 安装。
- 如果是rar文件需要把rar安装包下的Rar.exe和UnRar.exe,放在对应项目\\venv\\Scripts的路径下。
- import失败时,需要在File->Settings->Project Interpreter添加对应的模块。
2.判断文件格式
type = os.path.splitext(path)[-1][1:] if type == \"zip\": elif type == \"rar\":
3.判断是否有密码
type = os.path.splitext(path)[-1][1:] if type == \"zip\": fileGet = zipfile.ZipFile(path) with fileGet as z: for l in z.infolist(): is_encrypted = l.flag_bits & 0x1 if is_encrypted: print(\"have password \") break else: pass elif type == \"rar\": fileGet = rarfile.RarFile(path) with fileGet as z: if z.needs_password(): print(\"have password \") else: print(\"no password\") return
4.密码字典 自己写或者下载相应的软件生成。
5.解压文件
1.zip和rar
fileGet = zipfile.ZipFile(path)
fileGet = rarfile.RarFile(path)
2.解压
fileExtr.extractall(pwd=password)
2.代码
import sys import zipfile import rarfile import threading import datetime import os import subprocess import getopt i = 0 fileGet = \"\" class MyThread(threading.Thread): def __init__(self, func, args, name=\'\'): threading.Thread.__init__(self) self.name = name self.func = func self.args = args self.result = self.func(*self.args) def get_result(self): try: return self.result except Exception: return None def extractFile(fileExtr, password, fileType): try: encodestr = str.encode(password) if (fileType == \"zip\"): fileExtr.extractall(pwd=str.encode(password)) else: fileExtr.extractall(pwd=password) global i i = i + 1 print(\"search count : %d,real password is : %s\" % (i, password)) return password except: i = i + 1 print(\"search count : %d,test password : %s, err:%s\" % (i, password, sys.exc_info()[0])) pass def mainStep(): path = input(\"please input path:\") try: if os.path.exists(path) == False: print(\"%s : path error!\"%(path)) return type = os.path.splitext(path)[-1][1:] if type == \"zip\": fileGet = zipfile.ZipFile(path) with fileGet as z: for l in z.infolist(): is_encrypted = l.flag_bits & 0x1 if is_encrypted: print(\"have password \") break else: pass fileGet = zipfile.ZipFile(path) elif type == \"rar\": fileGet = rarfile.RarFile(path) with fileGet as z: if z.needs_password(): print(\"have password \") else: print(\"no password\") return else: print(\"file not right\") return pwdLists = open(\"D:\\Python工程\\mutou.txt\") startTime = datetime.datetime.now() for line in pwdLists.readlines(): Pwd = line.strip(\'\\n\') t = MyThread(extractFile, (fileGet, Pwd, type)) t.start() if (t.get_result() is Pwd): break endTime = datetime.datetime.now() timeSpan = endTime - startTime print(\"search time:%ss\" % (timeSpan.total_seconds())) except: print(\"err:%s\" % sys.exc_info()[0]) if __name__ == \'__main__\': mainStep()
1.在线调试
2.脚本运行
- cmd 窗口打开方式:右键开始菜单,选择‘命令提示符(管理员)’即可。或者从开始菜单->运行->输入cmd,回车。
- 关于 cd 命令:用于改变当前目录路径。使用方式:cd[空格][路径]。例如 cd d:/Python27/Mytest 转到该路径下。
- 注意:如果当前盘符不是 D 盘,需要先转到 D 盘,输入 d: 回车即可。然后才可以使用 cd d:/Python27/Mytest 。
- 输入python test.py。test.py是对应的文件名。
© 版权声明
THE END
暂无评论内容