| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 小白也可以轻松破解被加密的ZIP口令啦 -> 正文阅读 |
|
[Python知识库]小白也可以轻松破解被加密的ZIP口令啦 |
不管是刚刚接触python,还是没有接触过python的同学, 在浏览本篇文章时应该都不会感觉到费力。(python2.7.6版本以上) 我会尽量详细直白的进行讲解,使得即使是一个没有python编码基础的小白,在阅读完本篇文章后,大脑中也会产生如何去构建一个脚本的思路。 希望这篇文章能够提升你们对python的兴趣, 了解python构建脚本时的基本思维,并且感受一下python语言的魅力所在吧。 你将难以想象,通过Python仅仅需要几十行的代码和一本好用的字典就能够轻松破解被加密的压缩包文件。 言归正传,我们来看一下我们是如何一步步构建脚本框架,修改完善脚本,并最终实现口令破解的吧!!! 开始我们先创建一个文件,将其命名为“zip1.py”,打开文件后便开始了我们的编程之旅。 在此之前,由于是在实验环境,所以我们还需要创建一个含有口令的压缩包:密码设置为123456 并将其命名为”a.zip” 我们在尝试读取其中文件时,便会要求我们输入响应的口令: 下面我们就要了解,是什么原理让脚本运行起来时能够实现密码的破解呢? 我们打开刚刚创建的“zip1.py”,然后再里面输入以下代码:
我们首先在第一行调用了python中的zipfile库。 zipfile库简单来说可以让我们实例化压缩文件,并且提供将其破解的函数。 导入库后,用带有口令保护的zip文件的文件名,实例化一个新的ZipFile类。 要解压这个ZIP文件 我们需要用的zipfile库中的“extractall()”函数 pwd就是压缩包的密码 来运行一下脚本,我们发现脚本会将破解后的文件解压,并且存放在我们的根目录下。 现在我们已经了解了破解流程,接下来就可以打造属于我们自己的工具了! 我们在破解的时候当然不可能逐一去输入账号密码,这样太费劲了! 所以我们需要拥有一本属于自己zip爆破字典(1.txt) 有了字典之后,我们将字典中的密码遍历到password变量中并对之前的代码进行一下修改:
然后尝试运行一下这个脚本:我们发现报错了! 我们的字典内容如下:其中包含我们的正确口令。 我们再来看一下报错信息。
我们都过检查报错信息的末端发现,这是由于口令错误引起的,进而继续追踪相关函数,发现正是extractall()出现错误引起的。 函数一旦出错便不会跳过错误继续向下遍历密码,那么我们就要使用try-except代码块来避免程序崩溃! 改进后的代码如下:
try:尝试执行extractall()函数破解,执行成功则输出正确ZIP密码,若执行失败则进入except板块Pass掉这个异常! 这样就不会出现因为破解失败而导致的程序崩溃了 我们再来执行发现,脚本能够正常遍历字典中所有密码,并且输出! 我们再来执行发现,脚本能够正常遍历字典中所有密码,并且输出! 但是我们需要的是函数模块化的脚本,而非线性执行的程序我们不得不让我们的脚本更灵活,更具有可塑性! 下面我们来清理一下代码: 1.我们将定义一个函数extractFile(),使这个函数具有带入字典密码并破解口令的功能。 2.我们再定义一个函数main(),使其能够实例化ZIP文件,遍历字典内容,并执行extractFile()函数的功能! 模块化的代码如下:
3.当.py文件被直接运行时,if name ==’main‘之下的代码块将被运行;当.py文件以模块形式被导入时,if name == ‘main‘之下的代码块不被运行。 4.因为当前脚本运行时 name =main 5.如果是在abc.py脚本中被导入的话 像是import zip1 6.这样的话__main__ =zip1 而不是main了 所以就会和__main__不匹配 7.从而不会执行该函数 现在我们离成功就差最后一步了! 2.并且我们还要为此添加多线程的功能,这样在面临庞大的字典时 也能快速的对目标文件进行多线程破解! 终极版代码如下:
激动人心的时刻到了! 破解成功!!!完结撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。 因为这会让代码比较简洁并且容易理解。 大家可以尝试使用getopt库来重新定义一下,那样子虽然有些麻烦,但是对于刚刚接触python的同学会更容易理解。 学习完本篇章后大家就再也不用担心别人给ZIP文件加密啦~ 源码链接:https://pan.baidu.com/s/1-UjEnVFbqZuAquScz8zlrw
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:02:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |