来个大揭秘,有趣的ZIP压缩文件伪加密(附自制演示工具)

网管小贾 / sysadm.cc

网管小贾 / sysadm.cc

“太公……太……哎哟……”

员外刚一个转身,与家仆高才撞了个满怀。

员外用手点指:“你你你……你这小厮,跌跌撞撞,成何体统!”

高才坐在地上喘气笑脸道:“恭……恭喜……太……太公……法……法师……找到了!”


那一日,我闲来无事,一路游山玩水,无意间来到这个不大的镇甸。

正在路上走着,不期与这高才打了个照面。

没想到这小厮属社牛的,上前招呼都不打拽着我的胳膊就走。

这还了得,这有砖有瓦有王法的地方,竟敢光天化日之下强抢民男,是何居心,哪方道理?

这小厮将我拖了半里地,见我正欲发作,便直言道我就是他要找的法师。


什么法师?

我像法师?

他说我眉分八彩、目若朗星,相貌甚伟、仪表堂堂,不是法师,难道是道士?

合着这叫法师啊,虽然你说的都是事实,但是我不会法术啊!

高才却指天赌誓,说家中正请法师,如若得力,员外爷必有重谢!

真新鲜哈,正好我也没啥事,且随他前去观看观看。

由此才有了开头一幕。


来到庄上,与员外寒暄两句,便将我请入厅中,各自分宾主落坐。

仆人献茶退下后,老员外突然失声抽泣,热泪两行、口打嗐声,诉说前情。

我这才知道,原来这户人家老夫妇二人,虽衬金衬银,却家中无子,唯有一个宝贝千金。

本想家中颇有些财产,便安排上门招赘,好将女儿留在身边。

半年前,来一男子,口称二十多里外福崚镇人,父母皆已往生,现单身一人,愿意入赘。

员外夫妇自然欢喜,可时间一久,人品素肠暴露,平日里好吃懒做打骂下人也就罢了,如今吃了些酒就爱撒泼耍疯,连员外老夫妇俩都要打骂。

前几日他居然擅自将小姐单独关在后院,还将大门上锁。


后来趁他不在,才从小姐口中得知,这锁的密码可能就放在家中电脑的一个压缩文件里。

可当找到了这个文件时,却发现它需要输入密码才能打开。

然而众人不知密码,猜测尝试无论多少次都不行。

之前也请过几个法师来看过,烧香的烧香,祷告的祷告,作法的作法,听说连暴力破解啥的黑客工具都用上了,还不是个个败下阵来,毫无办法。

员外看我毛发稀疏、镜片深厚,五官貌相与众不同必是大材,因此对我抱有一线希望。

怎么听这味儿,这法师是专业搞计算机的?

我还在纳闷,只见员外屏退左右,将电脑从一墙壁暗盒中取出……


打开电脑,找到那个 ZIP 压缩文件,双击它就管你要密码,否则啥都看不见。

操作都没问题,不过你说这叫什么事,连黑客都搞不定的事,我能有什么办法呢,我又不黑!

员外看出我有些为难,便吩咐道:“来啊!先给法师拿二百两银子!”

哎哟……我……这不就见外了嘛!

就冲我的专业,我不能再怠慢了……


我口送法号,念念有词,结果研究了半天,毫无起色。

正在一筹莫展之际,我突然灵光乍现,想到了一种可能的情况。

会不会是……?

于是我用立马用16进制文件编辑器打开这个压缩文件,用眼睛扫了扫,果然验证了我的猜测!

哈哈,我紧锁的双眉舒展了开来,原来如此……


先来简单说说关于 ZIP 文件的小姿势,真的是简单地说说。

ZIP 是一种我们常见的压缩格式,一个 ZIP 文件通常由三大部分组成:

  • 压缩源文件数据区,以 50 4B 03 04 开头。
  • 压缩源文件目录区,以 50 4B 01 02 开头。
  • 压缩源文件目录结束标志,以 50 4B 05 06 开头。

这里我截了三幅图,各位可以对照参看。

压缩源文件数据区,就是一个或多个文件被压缩后它们的数据部分。

注意哈,这个标记不仅仅是在文件开头,只要压缩包里有多个文件,那么其他地方也存在对应的多个文件数据区。

在这里插入图片描述

压缩文件目录区,可以简单地理解为存放的是压缩源文件的索引记录。

其标记大概像这样。

在这里插入图片描述

压缩文件目录结束标志,与前者压缩文件目录区对应,形成一个目录的完美闭环。

在这里插入图片描述

光这么说,各位肯定得糊涂,还是画图为妙。

以下就是一个普通 ZIP 文件里面的样子,应该可以看到一些规律吧。

数据区1
数据区2
数据区N
……
目录区1
目录区结束标志1
目录区2
目录区结束标志2
目录区N
目录区结束标志N
……

对于压缩文件1,在 ZIP 文件里就是先放数据区1,再放目录区1和目录区结束标志1。

剩下的以此类推,好理解了吧?


好,接下来揭秘。

我们只要知道有这么两个神秘的地方……


第一个,数据区加密位置,偏移量为 6 ,也就是在数据区开头后面的第 7 位(开头都是从 0 开始的)。

这个偏移为 6 的位置,叫做全局方式位标记

来,上图,光靠想象不行的,还得看图。

看到没,从数据区 50 4B 03 04 标记往后边数(从 50 开始数),第 7 个就是全局方式位标记。

先记住它,后面要用。

在这里插入图片描述

接下来第二个,目录区加密位置,偏移量为 8 ,也就是目录区开头后面的第 9 位(开头都是从 0 开始的)。

这个偏移为 8 的位置,也叫做全局方式位标记,只是它是目录区的。

接着上图,看到没,从数据区 50 4B 01 02 标记往后边数(从 50 开始数),第 9 个就是全局方式位标记。

在这里插入图片描述

其他的这个那个不用管,就这么两个地方,就是我们变戏法的关键所在!

原理非常简单,要看一个 ZIP 文件是否加密,主要就是看**压缩源文件(数据区)的全局方式位标记和压缩源文件(目录区)**的全局方式位标记。

那么这两个地方怎么看,有什么讲究呢?

咳咳……员外,那个饭菜准备得……!

哦哦,虚位以待、随时恭候?

好好好,重点来了,听好!


答案可能简单得让你掉下巴,关键就在这两个标记数值的奇偶上,也就是单双数上,而和其他因素没有关系,并且不影响加密属性。

简单一句话,标记为偶数(如:000204 等)则表示无加密,标记为奇数(如:010307 等)则表示有加密。

当然了,数据区标记和目录区标记要相互配合,不能单蹦,这个网上很多教程都没有说清楚。


有人说了,这能行吗?

是骡子是马拉出来溜溜呗!

我们随便拿个 ZIP 文件来试试不就知道了?


找一个未加密的 ZIP 文件,用 WinHex 或是其他16进制编辑软件打开它。

先找到数据区标志 50 4B 03 04 ,然后将第 7 位改成任意奇数。

在这里插入图片描述

接着找到目录区标志 50 4B 01 02 ,然后将第 9 位改成任意奇数。

在这里插入图片描述

好了,保存,打完收工!

收什么工,还没测试呢!

测试很简单,打开刚才修改过的 ZIP 文件,你会发现奇迹出现了!

原来不要密码的,现在它……它居然……居然要密码了!

不管是系统自带的解压软件,还是第三方的解压工具,都会提示需要输入密码。

在这里插入图片描述
在这里插入图片描述

如果想要恢复成原来不需要输入密码的状态,那么只需要将修改的标记位再改为偶数即可。

是不是既简单又魔幻?

这就是传说中的 ZIP 伪加密!

说白了就是假的加密,不是真的加密。


这的确很有趣的对不对,为此我之前还特意做了一个小工具,方便伪加密和伪解密。

毕竟有时压缩包里不止一个文件,挨个查找并修改标记位能把人给干麻了!

在这里插入图片描述

网管小贾的ZIP伪加密演示程序

下载链接:https://pan.baidu.com/s/1ocqW2AsqK9UEoWYXtJsRvw

提取码:<关注公众号,发送001102>


知道了伪加密的原理,现在我们也就终于明白了,为啥输入任何密码都没有用,原因就是它根本就没有密码啊喂!

经过一番折腾,压缩文件中的密码文本文件总算是给解出来了!

员外冲着我竖起了两个大拇指,直呼:“真乃神人也!”

我谦虚地擦了擦口水,摸了摸肚子……


席间,我也没客气,吃了个沟满壕平,一边抹嘴一边喊:“服务员……那个……有水果没?”

高才闻声赶来给我满酒,说一会儿水果就到。

之后他恳请我送他一个伪加密演示程序。

我自然慷慨赠与,不过同时告诫他,不可用此做出什么坏事,否则若是我知道定将其化为齑粉。

高才一呲牙,承诺定当铭记在心。

随后仆人送上水果,高才顺手递给我一只大红桃,附耳告诉我今晚小姐想感谢我,顺便一睹法师尊容,可否留宿一夜,明日再走。

我咬了一口桃子,顿觉甘甜可口、满齿留香。

我表面默不作声,实则计上心来……


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Pyramid、Mako和PyJade生成 HTML

Pyramid 是一个流行的 Python Web 框架&#xff0c;而 Mako 和 PyJade 是用于模板引擎的工具&#xff0c;它们可以与 Pyramid 配合使用来生成 HTML 内容。但是在实际使用中还是有些差别的&#xff0c;尤其会遇到各种各样的问题&#xff0c;下面我将利用我所学的知识一一为大家解…

03 Linux编程-进程

1、进程的相关概念 1.1 程序与进程 程序是静态的概念&#xff0c;进程是程序的一次运行活动。 1.2 查看系统中有哪些进程 ps #只显示一小部分进程 ps -aux #会打印当前所有进程 ps -aux|grep init #使用grep筛选出只含有init的进程top #运行显示的进程有点类似windows…

张驰咨询:AI与六西格玛——携手共进,非彼此替代

在历史的洪流中&#xff0c;技术与方法的演进如同波澜壮阔的画卷&#xff0c;不断书写着人类文明的篇章。六西格玛&#xff0c;作为一种追求极致品质与效率的方法论&#xff0c;是现代工业文明中的瑰宝。而当我们面对AI&#xff08;人工智能&#xff09;这一新时代的产物时&…

在阿里云服务器上安装MySQL

目录 一、先卸载不需要的环境 1.关闭MySQL服务 2.查看安装包以及卸载安装包 3.依次卸载所有包 4. 获取mysql官⽅yum源 二、安装&#xff08;密钥过期解决方法&#xff09; 三、启动并进入 关于MySQL MySQL是一个广泛使用的开源关系型数据库管理系统&#xff08;RDBMS&…

通过windows远程桌面,远程连接CentOS系统

1.配置阿里云的YUM仓库 1.1 备份当前的YUM仓库配置文件 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup1.2 下载阿里云的CentOS仓库配置文件 对于CentOS 7&#xff1a; sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirr…

十二生肖Midjourney绘画大挑战:释放你的创意火花

随着AI艺术逐渐进入大众视野&#xff0c;使用Midjourney绘制十二生肖不仅能够激发我们的想象力&#xff0c;还能让我们与传统文化进行一场新式的对话。在这里&#xff0c;我们会逐一提供给你创意满满的绘画提示词&#xff0c;让你的作品别具一格。而且&#xff0c;我们还精选了…

【HR】阿里三板斧--20240514

参考https://blog.csdn.net/haydenwang8287/article/details/113541512 头部三板斧 战略能不能落地、文化能不能得到传承、人才能不能得到保障。 头部三板斧适用的核心场景有三个&#xff1a;一是战略不靠谱&#xff1b;二是组织效率低、不聚心&#xff1b;三是人才跟不上。对…

memset函数

让我们先看两个代码 memset(dp, 0x3f, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; memset(dp, 127, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; 代码结果如下&#xff1a; 现在我们来分…

每日一学—K邻算法:在风险传导中的创新应用与实践价值

文章目录 &#x1f4cb; 前言&#x1f3af; K邻算法的实践意义&#x1f3af; 创新应用与案例分析&#x1f525; 参与方式 &#x1f4cb; 前言 在当今工业领域&#xff0c;图思维方式与图数据技术的应用日益广泛&#xff0c;成为图数据探索、挖掘与应用的坚实基础。本文旨在分享…

C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数

目录 什么是多态性&#xff1f; 概念 分类 向上类型转换 功能的早绑定和晚绑定 绑定 绑定与多态的联系 编译时多态&#xff08;功能的早绑定&#xff09; 运行时多态&#xff08;功能的晚绑定&#xff09; 一般而言 实现功能晚绑定——虚函数 虚函数定义的说明 什么…

Docker 使用 Fedora 镜像

Fedora 在 Docker 中的使用也非常简单&#xff0c;直接使用命令 docker run -it fedora:latest bash 就可以 pull 到本地的容器中并且运行。 C:\Users\yhu>docker run -it fedora:latest bash Unable to find image fedora:latest locally latest: Pulling from library/fed…

项目实施方案:多点异地机动车典型系统试验状态可视监控系统

目录 一、需求分析 1.1项目背景 1.2项目概述 二、系统优势 2.1兼容性能力强 2.2接入协议多样 2.3并发能力强 2.3.1 单平台参数 2.3.2 多平台性能参数 2.4 系统稳定性 三、建设目标 3.1安全性 3.2可扩展性 3.3易用性 3.4兼容性 3.5 响应能力 四、系统整体解决方…

Linux修炼之路之yum和vim编辑器

目录 一&#xff1a;Linux软件包管理器yum 二&#xff1a;vim编辑器 vim的三种模式及互相转换 命令模式 底行模式 三&#xff1a;普通用户的sudo指令(修改信任名单) 接下来的日子会顺顺利利&#xff0c;万事胜意&#xff0c;生活明朗-----------林辞忧 一&#xff1a…

创建一个Spring Boot项目

文章目录 一、如何创建一个Spring Boot项目1.1 项目创建&#xff1a;专业版 or 社区版 or 网站创建1.2 数据配置1.3 项目启动1.4 代码编写 二、Spring Boot 项目文件介绍三、Web服务器四、根据HTTP状态码解决bug4.1 4044.2 500 五、Spring VS Spring Boot VS Spring Web MVC5.1…

AI“源神”启动!Llama 3发布,开闭源之争战局生变

在AI的世界里&#xff0c;开源与闭源的较量一直是科技界的热门话题。 今年年初&#xff0c;埃隆马斯克在对OpenAI及其CEO萨姆奥特曼提起诉讼时&#xff0c;就对OpenAI逐渐不公开其模型研究相关细节的行为大加谴责。“时至今日&#xff0c;OpenAI公司网站还宣称&#xff0c;它的…

JVM从1%到99%【精选】-运行时数据区

目录 1.总览运行时数据区 2.内存溢出 3. 程序计数器 4.虚拟机栈 5.本地方法栈 6.堆 7.方法区 8.直接内存 1.总览运行时数据区 Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。运行时数据区可以分为方法区、堆、虚拟机栈、本地方法栈、程序计数器…

美国分析人工智能技术对网络格局的影响(下)

文章目录 前言六、边际效应和威胁七、将人工智能纳入美国网络战略总结前言 以生成式人工智能在网络犯罪市场中的作用为例。利用生成式人工智能(无论是通过生成文本、语音还是图像)的近期威胁之一是在网络操作的初始访问阶段将此类内容用于社会工程和鱼叉式网络钓鱼。例如,一…

vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点 远程服务器python 环境没问题 conda这些也都有的ssh的账户 是有conda权限的没有免密就输入密码 免密教程就是最基本的那种 公钥copy过去就行了vscode 那几个插件都要装好 开始操作 首先 vscode 点击左侧工具栏中的扩展&#xff0c;搜索“ssh”&#xff0c;…

7.STL中string的一些超常用函数 (附习题)

目录 1.find 2.atoi 3.to_string 4.getline 【leetcode 习题】 387.字符串中的第一个唯一字符 125. 验证回文串 1.find 1.查找第一次出现的目标字符串&#xff1a;说明&#xff1a;如果查找成功则输出查找到的第一个位置&#xff0c;否则返回-1&#xff1b; s1.find(s2…

linux安装Openresty

安装必要的依赖库 指定仓库地址 下载openresty 添加环境变量 vi /etc/profile i export NGINX_HOME/usr/local/openresty/nginx/ export PATH${NGINX_HOME}/sbin:$PATH esc :wq source /etc/profile #启动 nginx # 重启 nginx -s reload #关闭 nginx -s stop