zoukankan      html  css  js  c++  java
  • 自己写一个破解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()
    

      

  • 相关阅读:
    java之设计模式
    java关键字volatile用法详解
    java关键字tranisent用法详解
    java关键字final用法详解
    java关键字static用法详解
    护眼纯黑色VS2012配色方案
    (正能量)进击的菜鸟
    13、python实现罗马数字转整数
    python判断回文数-leetcode算法
    正确显示中文标签和正负号
  • 原文地址:https://www.cnblogs.com/baimaoma/p/9085014.html
Copyright © 2011-2022 走看看