xiaoyuzhou1228

PC软件加密方案

0
阅读(527) 评论(27)

在计算机领域,程序加壳是指在原始程序运行前,先执行一段“壳”程序,然后再把程序交还给原始程序。这样做的好处是,通过常规破解手段,无法轻易找到可执行程序的真正入口点(OEP),可有效防止破解源程序,保护重要信息数据。

壳加密又分为伪装壳、压缩壳等多种类型,虽然加壳方法的实现细节有所不同,但其核心加密原理都是不变,即在原始程序外建立一个单独的防护机制,因此他对于源程序不管做了压缩、加密还是地址打乱等操作,完整的源代码还是要被还原出来,这样才能正常运行。这就是壳加密的一个安全风险,因为壳加密是可以被众多脱壳软件绕过或剥离的。现在网络上有很多免费的脱壳软件,都可以轻松实现去壳操作,这样一来,通过加壳保护源程序就不明智了。

壳加密还有另外一个小缺点,就是兼容性问题。因为不同系统平台下可执行文件的差异导致对于加壳有不同的要求。比如:DOS下的可执行文件事宜.COM结尾的文件,且无文件头,缺省程序执行地址是0x100;win32平台的PE文件,不支持自装载,需要程序使用自己的方法来管理数据,所以标准很不统一就导致了壳加密的兼容性难题不易解决。

除了壳加密之外,现在市场比较流行的PC软件加密还有一种算法移植方案。基本原理是把可执行文件中的一部分代码功能移植到另一个安全硬件平台运行,保证原有程序代码不完整,这样做的好处是必须把现有程序和移植走的程序一同破解才能实现真正的破解。对这种加密方案来说,PC之外的安全硬件平台非常重要,最常见的就是算法移植加密狗,一般选用安全级别非常高的嵌入式安全芯片来完成移植代码的运行工作。因为安全芯片具有众多防破解机制,所以其内部运行的代码不能非法读出,只要移植的代码选取合理,能够很大限度的提升可执行软件的安全。

但这种软件加密方案也是有缺点的,它要求开发人员具备一定嵌入式编程能力,研发需要投入的时间也会较多。

上述两种加密方案,都有各自的优缺点,用户还需结合自己的实际需求和应用场景,选择合适的加密方案,如果用户更注重安全,那么算法移植方案的加密狗会更适合。


  1. @miniminimini   
    不是分离函数,是程序,当然分离函数处理也行,主要目的就是使程序不完整。@wang0327   

    楼主所说的算法移植方案的加密狗的加密方式是要把加密数据进行分离吗?


    加了这种外接设备,对软件的运行速度是否有影响呢?

  2. 不是分离函数,是程序,当然分离函数处理也行,主要目的就是使程序不完整。@wang0327   

    楼主所说的算法移植方案的加密狗的加密方式是要把加密数据进行分离吗?


  3. 楼主所说的算法移植方案的加密狗的加密方式是要把加密数据进行分离吗?

  4. 金融级别应该要到EAL4+、EAL5+,具体要看厂家的硬件芯片安全级别了。

  5. 这种算法移植软件加密狗选用的加密芯片能达到金融级别吗?


  6. 从文章来看,算法移植方案的加密狗只是防破解机制较多,所以相对来安全,但关键还是取决于移植的代码选取的合理,所以编写移植的代码的研发人员很重要,要求研发人员能力强才行

  7. 我看网上有做推广的,你搜搜


  8. 文章说“更注重安全,那么算法移植方案的加密狗会更适合”,那么问题来了,这种算法移植的加密狗哪里能买到呢?

  9. 当然了。能让本身程序不完整,破解人员还破不了加密狗@dg336699   

    安全问题不容小觑,文章中提到了有一种算法移植的加密狗,应该可以用此来解决安全问题的吧?



  10. 安全问题不容小觑,文章中提到了有一种算法移植的加密狗,应该可以用此来解决安全问题的吧?


  11. 除了兼容性以外,壳加密对于小程序还好说,如果大程序的话加解密时间就会非常大,影响使用效果。算法移植应该是未来的发展方向。

  12. 通过硬件来加密真的就安全了嘛,NO NO NO软硬结合加上现在的智能技术才是以后安全发展的方向