网管小贾 / 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 文件是否加密,主要就是看压缩源文件(数据区)的全局方式位标记和压缩源文件(目录区)的全局方式位标记。
那么这两个地方怎么看,有什么讲究呢?
咳咳……员外,那个饭菜准备得……!
哦哦,虚位以待、随时恭候?
好好好,重点来了,听好!
答案可能简单得让你掉下巴,关键就在这两个标记数值的奇偶上,也就是单双数上,而和其他因素没有关系,并且不影响加密属性。
简单一句话,标记为偶数(如:00 、02 、04 等)则表示无加密,标记为奇数(如:01 、 03 、 07 等)则表示有加密。
当然了,数据区标记和目录区标记要相互配合,不能单蹦,这个网上很多教程都没有说清楚。
有人说了,这能行吗?
是骡子是马拉出来溜溜呗!
我们随便拿个 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