一个微小的 C++ 混淆框架
从计算机软件商业化的早期开始,恶意程序员(也称为黑客)一直在不断绕过他们在软件中实施的巧妙授权机制,从而给提供软件的公司造成经济损失,使软件的程序员们不断受到困扰。
近年来,这一趋势没有改变,程序员编写的程序越复杂,破解者就要花更多的时间来破坏新创建的程序,最终,破解者总是成功的。为了应对破解社区不断施加的压力,公司需要不断更改授权和识别算法,但实际上,这并不是一个可行的解决方案。
围绕软件保护和许可技术而形成了一整个行业,知名公司提供了先进(且昂贵)的解决方案来解决这一问题。保护方案多种多样,从使用硬件插件、网络激活,到使用独特的许可密钥,再到对个性化数据进行复杂加密,种类繁多。
本文将简要介绍一种非常简单和天真的许可算法的内部工作原理,我们将展示如何在一个近乎现实的场景中绕过它,最后还将介绍一种基于软件的方法来缓解真正的问题,通过在 C++ 模板元编程框架生成的混淆操作层中隐藏许可检查代码,这将使想要破解应用程序的人的工作变得更加困难。当然,如果他们有足够的决心,代码也会在某个时候被破解,但至少我们会让他们更加困难。
天真的许可证算法是一种非常简单的实现,用于检查与购买相关软件的用户名关联的许可证的有效性。这不是一套工业级的算法,它仅具有示范性,同时尝试提供有关实际运行情况的见解。
暂无开放 Issues,或尚未同步最近议题。