来个大揭秘,有趣的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

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网管小贾

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值