
专家
这是一个开源软件 KeePass:你根本不需要去逆向分析它,它的源代码已经公开,文档齐全且注释详尽。为什么不花点时间看看,然后给大家讲解一下它的基本架构?或者,如果你觉得有难度,可以出资请几位国内高校的教授来为你讲解这个软件的工作原理。不过提前提醒一下:别去找密码学相关专业的教授要求他们解释 KeePass 的 Shell 集成部分代码。那不是他们的专业领域,他们未必懂。但这并不意味着这些教授不称职。你需要将加解密应用、软件设计以及操作系统集成这三个部分分开,分别找各自领域的
专家进行讲解。能够全面理解并讲清楚这所有内容的人,通常被称为全栈工程师。而在密码学领域内的全栈工程师是非常罕见的,可能需要花很长时间才能找到。你可以试着在全国范围内找一找,看能凑齐多少人能把这个软件中的一个模块完全讲明白。实际上,逆向工程比阅读源码要困难得多。Windows 系统并不需要被逆向,因为它的源代码已经被提供给我国政府进行审查了。同时,Windows 并非没有人尝试逆向,尤其是其激活机制,吸引了许多人的关注,其中俄罗斯的研究者尤为活跃。如果要开发 Windows 系统,这不是靠一个人就能完成的任务,而是需要至少上千名工程师组成的团队,花费数年时间共同努力。而且这些工程师的能力必须非常出色,比如达到那种写 2000 行代码几乎零 bug(以至于在网络上被人质疑是骗子)的中等水平。这样的工程师每月薪资大概在一万美元左右,一千人的团队每月工资就是一千万美元,一年下来仅工资支出就至少需要 1.2 亿美元。实际上,这个数字可能还是被低估了。毕竟,
微软 Office 的开发团队就有 5000 人,而 Office 的复杂度应该不会超过操作系统。以上讨论的是开发,而不是逆向。逆向实际上可以分为三个主要步骤:第一步是读懂
微软的机器码。逆向工程的核心在于解读机器码,而这要比读源码难十倍甚至更多。第二步是模仿解读出的原理,使用相同的数据结构编写程序以实现相同的功能。第三步则是设计测试用例和测试计划,确保逆向出来的产品与原版没有差别。整个过程的工作量至少是从头开发的十倍甚至百倍以上。好吧,如果你有兴趣,可以去找地方、找人、找资金,开始你的逆向之旅吧。另外,请确保管理得当,让几千甚至几万名高级工程师能够安心工作,不必整天担心被陷害、欠薪或被淘汰……