• 自己写一个破解zip加密文件的脚本


    前言:因为要参加一个作品赛,而且要写一个PPT来介绍一下自己的作品,自己写的PPT丑的一批,所以就想到网上找一些模板。开启度娘模式,搜索PPT模板,找到百度云分享,开心,下载,下载之后懵X了,TMD还有密码这能忍.....度娘一波破解zip文件的软件(O(∩_∩)O刚开始还没想者自己写,有现成的谁不用呀)下载之后发现竟然还要付费,wcnmlgjb当我们劳动人人民是傻子呀!这么没有技术含量的东西还要付费.md自己动手丰衣足食!
     
    因为对zip文件的文件格式格式不是很熟悉,所以首先想到的是python中应该封装有对zip文件读取的包,果然度娘一波就发现了确实有一个zipfile的包(python大法好呀如果大一的时候就接触到了python那也不至于当时对编程是那么的不感兴趣!最终跳到了网安这个坑,其实这都是后话跳入这个坑之后发现其实网安还是很有意思的...嘻嘻嘻)zipfile中封装了一个方法 ZipFile.extractall(path=None, members=None, pwd=None) 里面分别是zip文件的路径,成员,密码。这个函数当匹配到密码是正确的时候会直接将zip文件解压,而如果密码不正确的时候会抛出一个异常。所以我们就可以根据这个来对zip文件进行破解,其实个人感觉如果我们对zip文件的文件的二进制编码熟悉的话我们自己完全可以编写出类似于extracall这样的函数。嘻嘻。。不扯别的直接上源码
     
    # -*- coding:utf-8 -*-
    import zipfile
    import threading
    from termcolor import *
    
    def crack(zFile,password):
    
        try:
            zFile.extractall(pwd=password.encode('cp850','replace'))
    
            print("++++++++++++++++++++++++KEY FOUND+++++++++++++++++++++++++++++++")
    
            print(colored("[+]",'green')+colored("Found password:"+password,'cyan'))
    
            event.set()
    
            return password
    
        except Exception as e:
    
            print(colored("[-]",'red')+colored(password,'blue')+colored(":is not the right key","yellow"))
    
    def load():
    
        zFile = zipfile.ZipFile('D:\download\1.zip')
    
        # 由于系统默认的编码格式gbk所以这里要改变读取的编码格式不然会造成python抛出异常
    
        passFile = open('C:\Users\Ma\Desktop\Desk\实用小工具\zip文件破解\1.txt',encoding='utf-8', mode = 'r')
    
        for line in passFile.readlines():
    
            if event.isSet():
    
                return
    
            else:
                password = line.strip('
    ')
    
                t = threading.Thread(target=crack, args=(zFile, password))
    
                t.start()
    
                t.join()
    
    
    
    if __name__ == '__main__':
    
        event = threading.Event()
    
        load()
    

      

  • 相关阅读:
    XStream和Dom4j的区别
    tomcat 性能优化(内存优化 线程优化)
    安装tomcat
    python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
    python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
    python 全栈开发,Day8(文件操作)
    python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)
    python 全栈开发,Day6(is,小数据池,编码转换)
    python 全栈开发,Day5(字典,增删改查,其他操作方法)
    python 全栈开发,Day4(列表切片,增删改查,常用操作方法,元组,range,join)
  • 原文地址:https://www.cnblogs.com/baimaoma/p/9085014.html
Copyright © 2020-2023  润新知