一、事情是这样的
二、首先回顾一下女神的操作流程
三、需要密码打开相册
四、python脚本化处理
1、基本思路
2、解压命令
3、解压命令参数分析
4、整理7z解压命令
5、关门!上python脚本
五、找女神去...
今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了
好奇问了一下才知道。
原来是,她把照片压缩了,而且还加了密码。
但是密码不记得了,只记得是一串6位数字。
话说照片压缩率也不高,而且还加密,难道是有什么可爱的小照片
但是作为一个正(ba)直(gua)的技术人员
我跟她说:“这事交给我,python写个脚本,帮你破解掉~~”
对相册进行压缩的时候,添加了密码。
LIke This ↓
打开的时候,提示这样的,需要输入密码。
首先如果想要python命令行来打开小姐姐相册,那么首先要找到尝试打开的命令行,即解压缩时使用的命令行。然后我们使用python脚本写嵌套循环,不断的对zip文件进行尝试解压,然后找回真实的密码。
首先压缩文件是zip格式的,我们使用万能的7z命令来进行解压。
为什么不用unzip命令呢?(因为我试过了,unzip无法循环)
#7Z详细参数,下面只截取几个关键参数
PS C:\Users\lex> 7z
7-Zip 21.01 alpha (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-03-09
Usage: 7z
[ ...] [ ...] [@listfile]
a : Add files to archive #加入压缩
d : Delete files from archive
e : Extract files from archive (without using directory names)
t : Test integrity of archive #尝试密码,不解压
...
-o{Directory} : set Output directory
-p{Password} : set Password #设置密码参数
命令太简单,感觉都有点配不上我的才华和思路
7z -p 123456 t 三亚相册.zip
# t:尝试打开,类似后台运行
# -p:尝试的密码
# 最后是要解压的文件
根据小姐姐的需求,密码是6位纯数字,那就帮我节省了好大一段时间
只对6位纯数字进行尝试就可以了。
三分钟就把脚本搞出来了
# -*- coding:utf-8 -*-
import os
import subprocess
import zipfile
def brutecrack():
for a in range(1,10):
for b in range(1,10):
for c in range(1,10):
for d in range(1,10):
for e in range(1,10):
for f in range(1,10):
passwd=str(a)+str(b)+str(c)+str(d)+str(e)+str(f)
command='7z -p'+passwd+' t F:/三亚相册.zip' #t 表示test,不进行实际解压,只测试密码
print(passwd)
child=subprocess.call(command)
#os.popen(command)#这个也可以用,但是不好监控解压状态
print(child)
if child==0:
print("相册密码为:"+passwd)
return
if __name__ == '__main__':
brutecrack()
面对着一筹莫展的女神,我运行起了脚本,不到5秒,相册成功打开了。
效果gif ↓
打开之后,女神看我的眼神都变了。
有句古话说的好:python学的好,女神跑不了。欢迎关注微信公众号:hacklex~~