import zipfile
lis = []
result = ""
data = ""
size = 1
with zipfile.ZipFile('love.zip', 'r') as zipobj: #读取压缩包for file_name in zipobj.namelist(): #遍历名称info = zipobj.getinfo(file_name)file_name = file_name.encode('cp437').decode('gbk')lis.append([file_name,info.file_size])
# print(lis)
del lis[0]
for i in range(len(lis)): #处理文件名和数据lis[i][0] = lis[i][0].replace("out/","")lis[i][0] = lis[i][0].replace(".png", "")lis[i][0] = int(lis[i][0])if lis[i][1]==262:lis[i][1]='0'else:lis[i][1]='1'
# print(lis)
lis = sorted(lis)
# print(lis)
for i in range(len(lis)):data += lis[i][1] #数据大小if len(data)%8==0: #集齐八位二进制时result+=chr(int(data,2))data=""
with open("2.txt","w") as fp:fp.write(result)
  • 先提取压缩包内的所有文件名和文件大小
  • 因为zipobj.namelist()文件列表中的文件名不是按递增排序的,所以需要先将文件名和文件大小提取到另一个列表内
  • 第一条数据是空的需要删除
  • 这个大列表内存在着许多的小列表,每个子列表代表一个文件,子列表的第一个元素是文件名称,第二个元素是文件大小
  • 因为文件名称是以out/名称为格式的,所以需要删除后缀和out/字符串,保留数字后再转换成数字类型
  • 使用sorted()函数对大列表进行递增,如果列表的元素都为列表时,默认会按每个子列表的第一个元素递增排序
  • 之后的操作就是将文件大小替换成0和1,每8位二进制就转换成十进制,然后再从十进制转换成ASCII码对应的字符
  • 最后把字符结果写入文件

CTF-Misc--处理压缩包大量文件将其转为二进制->10进制->字符串 脚本相关推荐

  1. java 文件上传格式,javaweb中的文件上传(以2进制格式上传)

    html:前台:简单的一个上传界面,可以浏览上传的文件,可以上传各种文件,前台没有验证,如过需要安全验证,可以在js中加验证 abc.jsp: js: function imp(){ var form ...

  2. 数据转换(字节数组转文件、文件转字节数组、16进制字符转字节数组、字节数组转16进制字符)

    字节数组转文件 procedure ByteArrayToFile(const ByteArray: TByteDynArray;const FileName: string); varCount: ...

  3. [BUGKU][CTF][MISC][2020] MISC writeup持续更新中

    CTF总结 ctf基本操作:https://blog.csdn.net/mafucan/article/details/106886421 zip: https://www.anquanke.com/ ...

  4. 16进制文件头笔记及文件类型判断代码

    之前做过一个功能,说是上传文件到服务器,但是所有文件excel.word.音乐.视频等都上传到一个文件夹,不利于查找,于是自己上网查询关于这方面的资料,决定按文件后缀名,给文件进行分类,存放不同的文件 ...

  5. java读取文件 16进制_Java对文件的16进制读取和操作

    大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序. 有几个重点地方: 16进制字符串->10进制数          int input = Integer.parseInt ...

  6. C语言进制的格式字符,GB汉字文件转换成C语言Unicode十六进制字符串格式

    可以用在编程环境只能用GB,但程序中的汉字字符串需要用C语言的Unicode十六进制字符串格式表示.可以先在字符串中直接输入汉字,再用此程序转换. 源代码用C# //ascii & GB to ...

  7. Matlab将TXT文件的十六进制转二进制

    MATLAB将txt中的16进制数据转成2进制 注意:(1)textread读取文件的路径就是原16进制txt文件的路径 (2)txt文件生成的路径就是.m文件的路径 clear; clc; a= t ...

  8. python文件的两种类型进制文件,Python之基于十六进制判断文件类型

    #!/usr/bin/env python#-*- coding: utf-8 -*-#@Author : suk importstructfrom io importBytesIO#支持文件类型#用 ...

  9. DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究

    DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究 问题描述: 需要用内存流打开一个300M大小的文件, 替换文件中固定长度的16进制编码为另一条编码 原始思路 1. ...

最新文章

  1. PMcaff写给大家的年终碎碎念 PMcaff | 记录
  2. java动态生成sdk_android、java制作sdk以及自动生成文档
  3. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
  4. python--从入门到实践--chapter 12 pygame_Alien_Invasion
  5. mysql常用系统函数归类
  6. 董明珠再谈“格力10年免费包修”政策:没企业敢跟,实力的象征
  7. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.16
  8. expat 处理xml常用函数名
  9. Python Selenium 浏览器点击操作
  10. 利用pandas对MovieLens电影数据分析
  11. (收藏)《博客园精华集》ASP.NET分册
  12. linux超时设置函数,I/O操作上设置超时之alarm闹钟法
  13. 59. 螺旋矩阵 II(中等 数组)
  14. 怎么将手机里的PDF文件转成图片
  15. 灰zhu姑xiao娘mei
  16. 被mysql虐待的一天
  17. 手机号、IMSI、TMSI CGI/SAI MSC BSC
  18. 3.go mod的依赖文件所在位置
  19. LeetCode刷题——36.有效的数独
  20. 数说故事车企数字化转型案例分享——内容营销如何促进品牌增长

热门文章

  1. 微软软件保护平台 白皮书.pdf
  2. SQL server 2016 安装步骤
  3. vsftpd匿名用户访问
  4. FEC之异或运算应用
  5. 20145209 2016-2017-2 《Java程序设计》第8周学习总结
  6. WIN7只能上QQ打不开网页,使用CMD输入netsh winsock reset
  7. Android记录一个setTextColor常见的一个bug
  8. mdadm,用命令做RAID
  9. seata 集群_【视频】 聊聊分布式事务解决方案seata
  10. python模块导入红色波浪线_解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题...