第1关:zip 压缩文件暴力破解
本关任务:编写一个能暴力破解加密 Zip
文件的小程序。
zip 压缩文件暴力破解
对于一个 zip
格式的压缩包,默认密码为 6
位,是数字和字母的组合。暴力破解的基本思路是,调用 Python
中的 zipfile
模块的 extractall
函数,尝试各种数字、字母组合,成功解压时返回相应的压缩密码。评测系统会判断返回的结果是否正确,正确即返回解压成功。
同学们可以思考下,如何破解密码是数字、字母、以及特殊字符的组合。 提示:itertools
模块,使用迭代器可以防止爆破的位数太多而爆内存。
根据提示,在右侧编辑器 begin-end 内补充代码,完成本关任务。
有一个加密的 Zip
格式的压缩文件 src/step1/evil.zip
,它的密码未知。 现在已知密码是数字 012345
与字母 asd
的排列组合,请在右侧编辑器中的 Try
函数中,尝试破解这个文件的密码,并将其密码返回。 评测系统会尝试使用这个密码解压 src/step1/evil.zip
,如果解压成功,则会输出解压成功,否则会输出解压失败。
使用密码成功解压时输出的解压成功即为通关条件。
import zipfile
import itertools
def Try():
path = 'src/step1/evil.zip' #压缩文件路径
#破解并返回密码
# 请在此添加实现代码 #
# ********** Begin *********#
def TRY(path,password):
try:
with zipfile.ZipFile(path) as z_file:
z_file.extractall("./",pwd=password.encode("utf-8"))
return True
except:
return False
chars="012345asd"
for c in itertools.permutations(chars,6):
password=''.join(c)
result=TRY(path,password)
if result==True:
return password
break
# ********** End **********#
第2关:PDF 取证
本关任务:编写一个能读取 PDF
元数据的小程序。
为了完成本关任务,你需要掌握:
PyPDF2
;PdfFileReader
;PdfFileWriter
;- 例子。
曾经有一次案件,当时黑客组织发布了 ANONOPS_The_Press_Release
这份稿件,希腊警方在稿件的元信息中发现了作者 Alex Tapanaris
的名字,然后以此为证据将其逮捕,也就是所谓的电子取证。基本思路是,调用 Python
中的 PyPDF2
模块的 get