0%

ZIP文件破解

限制:你拥有加密压缩包里的任意一个文件

原理:你输入的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力穷举的方式是不太可能的,除非你的密码比较短或者有个厉害的字典。压缩软件用这3个key加密所有包中的文件,这也就是说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。如果我们找到加密压缩包中的任意一个文件,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行无密码的压缩,得到的文件就是我们的Known plaintext。用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取出两个文件的不同点,就是那3个key了,如此就能得到key。两个相同文件在压缩包中的字节数应该相差12个byte,就是那3个key了。虽然我们还是无法通过这个key还原出密码,但是我们已经可以用这个key解开所有的文件,所以已经满足我的要求了,而且要以前的密码也没什么用呀,我只要文件

软件:Advanced ZIP Password Recovery

转载说明

原文连接:如何完善自己的知识结构

  • 因某些原因,原文需要科学上网才能访问,转载是觉得该篇文章大部分对自己很有帮助,但不代表同意作者观点。
  • 因某些原因,文章部分内容有删减。

引子

最近几年,陆续有读者来信跟俺交流“知识管理”这个话题。也有读者在博客留言,建议俺专门为此话题写一个系列。不过捏,因为手头还有 N 多系列没有收尾,再开新的系列要激起公愤了 :) 所以,今天只单独写一篇,谈谈俺对知识结构的看法。

其实捏,这是一个很大的话题,想用一篇博文完全说清楚,不太现实。俺只从三个层面入手,说说个人的看法,仅供列位看官参考。

阅读全文 »

个人理解

别名:多个变量指向同一块内存区域时,这些变量互为别名

目前CPU都是多核,现代的指令体系都是并行、乱序执行。编译器为了充分利用硬件资源提升程序性能,编译时要分析指令、数据间的依赖关系,没有依赖关系的指令、数据访问可以并发乱序进行。
在分析依赖关系时别名就是一个绕不开的问题,究竟谁是谁的别名,如果编译器不清楚,那为了保证编译出的程序的正确性,只能做最坏打算,不确定的地方假定都是别名。
后来编译器定义了一些规则,符合什么条件的变量才可能是别名,不符合的绝对不会是别名。通过编译选项 strict-aliasing可以通知编译器,我的代码严格遵守这些规则,放心大胆的优化。
通过编译选项no-strict-aliasing可以通知编译器,我代码中有各种风骚的类型转换,你优化时悠着点,做好最坏的打算。

阅读全文 »

在一个理想状态下,一户人家应该有自己的藏书。父母一辈完成了教育和自我教育,在书山文海里遨游过,凭借他们的智慧开辟了一条小径。然后,他们把这条小径作为家传,教给自己的孩子。其中,包括一些必读书单,一些书籍的阶梯划分,以及一个现代人应该有的知识范围和对应的书目。这样,无论孩子要功利性读书,还是漫游式读书,他们手里终归是有个罗盘,想功利才功利得起来,想漫游才找得到边界。三五代人那么传下去,这户人家就有了读书的大本营,在大本营门口插满路标,指示后人应该前去哪一个合适自己的方向。 –源自网络