【Python黑帽子】——简易的ZIP文件密码破解器

news2024/11/21 1:43:03

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:
舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:突然感觉也没什么好emo的了,仿佛时间已经将她洗刷 

 

 经过了上一章内容,我们对Python的背景,语法,函数,迭代器等问题进行了一个了解,也带大家认识了一下编写Python脚本工具需要用到的一些东西,那这一期我们就来编写一个简单的zip加密文件密码破解器,后续也会对其进行优化。代码如下

# coding=UTF-8
"""
用字典暴力破解ZIP压缩文件密码
"""
import zipfile
import threading


#  定义一个判断密码是否正确的函数
def extractFile(zFile, password):
    try:
        zFile.extractall(pwd=password.encode())
        print("Found Passwd : ", password)
        return password
    except Exception:
        # 异常处理
        pass


def main():
    # 指定要爆破的压缩文件
    zFile = zipfile.ZipFile(input("请输入你要爆破的压缩文件,例:C:\\a.zip\n"))
    # 指定要使用的字典文件
    dictfile = input("请输入要使用的字典文件,输入0则使用默认字典\n")
    if dictfile == '0':
        dictfile = "pwd.txt"
    passFile = open(dictfile)
    for line in passFile.readlines():  # 逐行读取字典文件
        password = line.strip('\n')  # 删除多余的换行
        t = threading.Thread(target=extractFile, args=(zFile, password))  # 创建线程
        t.start()  # 开启线程
        guess = extractFile(zFile, password)  # 尝试每一行读取的密码
        if guess:  # 成功读取
            print('Password = ', password)
            return
        else:
            continue
    print("password not found")


if __name__ == '__main__':
    main()

效果演示

我们先来模拟一下环境,创建一个flag.txt,把他压缩成zip文件并设置压缩密码,如下

 

可以看到打开时已经提示需要密码 

 

  好,我们运行这个文件如下

 

成功爆破出正确密码 

请输入你要爆破的压缩文件,例:C:\a.zip
flag.zip
请输入要使用的字典文件,输入0则使用默认字典
0
Found Passwd :  123456
Found Passwd :  123456
Password =  123456

 

 

 这个代码拿去就可以用,同时也在我的github上更新了,里面还附带有我自己的默认密码字典和使用说明,链接如下:

Grandejoy/ZIPbrute (github.com)

后续该工具会不断更新,希望持续关注 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[翻译+笔记]生成对抗网络: 从GAN到WGAN

最近读了一篇社会力模型的论文, 里面用到了GAN, 发现自己不是很懂. 想翻译一下一个大神的博客, 做一下笔记. 并不是全文翻译, 只翻译一部分. 原文地址: from GAN to WGAN 1. K-L和J-S散度 在介绍GAN之前, 首先复习一下衡量两个概率分布相似度的两种指标. (1) K-L散度: KL散度…

java Lambda表达式 省略模式写法

我们先来看一个普通的Lambda表达式 我们创建一个包 下面创建一个接口 testInterface 参考代码如下 public interface testInterface {int eat(int max,int min); }text 测试类 参考代码如下 public class text {public static void main(String args[]) {newTestInterface(…

夺冠热度空前,梅西Instagram粉丝破4亿,跨境卖家如何借这股东风?

阿根廷队世界杯夺冠,35岁的梅西终于实现了职业生涯大满贯,全世界球迷都在为梅西欢呼。梅西夺冠的热度席卷全球,当前其Instagram账号的粉丝就突破了4亿,成为世界上第二个Instagram粉丝超4亿的人。 梅西夺冠当日在Instagram上的发帖…

易观千帆 | 2022年11月银行APP月活跃用户规模盘点

易观分析:11月手机银行服务应用活跃人数52639.05万,环比增长0.68%;排在前三的手机银行APP仍然为中国工商银行、中国农业银行、中国建设银行。 11月城商行手机银行服务应用活跃人数3730.98万,环比增长4.64%,从月活表现来…

Spring Boot 实现 SSE 服务端推送事件

源码地址 关于 SSE SSE 全程 Server Send Event,是 HTTP 协议中的一种,Content-Type 为 text/event-stream,是服务端主动向前端推送数据。类似于 WebSocket。 SSE 优势我们可以划分为两个: 长链接服务端能主动向客户端推送数据…

想要精通算法和SQL的成长之路 - 编辑距离

想要精通算法和SQL的成长之路 - 编辑距离前言一. 编辑距离1.1 定义动态规划数组1.2 定义动态规划方程1.3 定义数组的初始化1.4 最终答案前言 想要精通算法和SQL的成长之路 - 系列导航 一. 编辑距离 原题链接 给你两个单词 word1 和 word2, 请返回将 word1 转换成 …

DataFactory根据字段类型在mysql插入数据

目录 插入Varchar类型数据 场景一:主键使用uuid 场景二:从外部导入数据 场景三:使用组合方式 插入data类型日期数据 插入Varchar类型数据 insert value from an data table :表示可以通过外部数据创建数据表插入字符串值 i…

实验二B 图像的空域与频域滤波(源代码一站式复制粘贴)

实验二B 图像的空域与频域滤波一、实验目的二、实验原理三、实验内容与要求四、实验的具体实现一、实验目的 1.掌握图像滤波的基本定义及目的。 2.理解空间域滤波的基本原理及方法。 3.掌握进行图像的空域滤波的方法。 4.掌握傅里叶变换及逆变换的基本原理方法。 5.理解频域滤…

算法刷题打卡第52天:排序数组---桶排序

排序数组 难度:中等 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5]示例 2: 输入:nums [5,1,1,2,0,0] 输出:[0,0,1,1,2,5]桶排序…

2022 CSDN 客服年终总结

hello,大家好,这里是《听用户心声,解用户之需》之 2022 年终总结篇。 秉承“用户至上”的服务理念,为了给用户提供极致的服务体验而时刻努力着,2022年,在大家的一致努力下,究竟有何成效呢&#…

SpringBoot1:helloword、导入依赖、配置项设置,打包方法、lombok、dev-tools、Spring Initailizr、常见注解

1.简介 简化Spring开发的一个框架。对整个Spring技术栈的大整合 J2EE企业级开发的一站式解决方案。 2.微服务 一个应用应该是一组小型服务,可以通过HTTP的方式来进行互通 每一个功能元素都是可独立替换,和独立升级的软件单元。 3.HelloWord 功能&am…

Stm32标准库函数5——OV2640 PA0-7 F103C8T6 4500000 联合VB 高分辨率

stm32f103c8t6串口发送 OV2640的图像,分辨率可选。网络上资料大部分是低分辨率的,这个可以做高分辨率 完整工程打包,包含VB串口显示界面: https://download.csdn.net/download/fengyuzhe13/87327054https://download.csdn.net/do…

【经典问题:HanoiTower(汉诺塔)】

🎁HanoiTower🎅HanoiTower问题描述🎅🎅模拟推导🎅🎅🎅问题的两种形式🎄求解移动总次数🎄🎄打印详细的移动过程🎅HanoiTower问题描述 汉诺塔问题&a…

基于HMM模型实现中文分词

任务描述:在理解中文文本的语义时需要进行分词处理,分词算法包括字符串匹配算法,基于统计的机器学习算法两大类。本案例在前文将说明常用分词库及其简单应用,之后会通过中文分词的例子介绍和实现一个基于统计的中文分词方法——HMM模型,该模型能很好地处理歧义和未登录词问…

[含文档+源码等]基于SSM实现的宿舍公共财产管理系统|寝室

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 [含文档源码等]基于SSM实现的宿舍公共财产管理系统|寝室 演示视频 [含文档源码等]基于SSM实现的宿舍公共财产管理系统|寝室_哔哩哔哩_bilibili 系统介…

经济低迷形势下,如何降低软件开发成本?

1、选对开发方法 过程决定结果。方法错了,再有经验的人,结果也不会好。例如,软件开发方法从70年代的瀑布,一步步从迭代、快速原型等进化到现在的敏捷、规模化敏捷、DevOps等。统计数字显示,使用敏捷方法,平…

Excel中实现时间相减,得到间隔时间(年月日时分秒)

一、年月日之差 表中有开始日期和结束日期,我们在D3单元格中输入“C3-B3” 于是,得到下面的结果 很显然,结果并不是我们想要的。说明这种方法不行,为了得到两个日期之间的时间间隔,需要用到DATEDIF函数。先来说下DATED…

我国融资性担保行业整体呈减量提质趋势 国家“出手”解决行业痛点

根据观研报告网发布的《中国融资性担保行业发展趋势分析与投资前景预测报告(2022-2029年)》显示,融资性担保行业是指担保人与银行业金融机构等债权人约定,当被担保人不履行对债权人负有的融资性债务时,由担保人依法承担…

Go:使用 go-micro 构建微服务(一)

一、微服务 什么是微服务(microservice)?这是企业界正在向计算界提出的问题。一个产品的可持续性取决于它的可修改程度。 大型产品如果不能正常维护,就需要在某个时间点停机维护。而微服务架构用细化的服务取代了传统的单体服务…

语音识别芯片LD3320介绍再续

语音识别芯片LD3320驱动程序 1、芯片复位 复位就是对LD3320芯片的第47腿(RSTB*)发送低电平,然后需要对片选CS做一次拉低→拉 高的操作,以激活内部DSP。按照以下顺序: void LD_reset() { RSTB1;delay(1);RSTB0;delay…