xiaoyuzhou1228

PC软件加密方案

0
阅读(365) 评论(27)

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

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

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

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

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

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


  1. 既然选择加密,当然安全最重要

  2. @pennysam   

    现在拆壳软件太多了,加壳越来越不好用了。

    采用算法移植方案+高安全等级加密芯片,对用户产品绝对是有安全保障的


  3. 现在拆壳软件太多了,加壳越来越不好用了。

  4. @Latour   
    @wang0327   

    把算法移植到专门的安全芯片中,是不是意味着需要做硬件开发


    肯定的,加密芯片也要电路啊!

    总不能在pc上改电路吧,文章中说的加密狗,不需要硬件开发


  5. @wang0327   

    把算法移植到专门的安全芯片中,是不是意味着需要做硬件开发


    肯定的,加密芯片也要电路啊!

  6. 把算法移植到专门的安全芯片中,是不是意味着需要做硬件开发呢?



  7. 目前PC端加密狗也基本采用这种算法移植方案的,安全性高;将一部分算法移植到加密狗中实现肯定需要一些开发时间。跟软件安全性相比,这点费用付出是值得的


  8. 算法移植方案岂不是加密芯片得能编程么,真的有这么好的产品吗?那是否意味着开发周期长,费用是不是也很高?


  9. 这篇文章说的是 对软件保护的,如果用的软件是其它人开发,肯定是用不起来的


  10. 楼上的不会是脱儿吧,我在好多平台都看见LKT推广,真有那么好?

  11. 我听说过LKT系列的 口碑还不错 但不知道是哪家公司的 你可以找度娘问一下


  12. @miniminimini   
    算法移植的,程序不完整,增加破解难度,这种的最安全,@dg336699   

    壳加密?嵌入式算法植加密?听起来好神奇,我是做数据统计工作的,哪种加密方式更适合我呢?


    那请问楼上的大神,你知道哪家的算法移植加密做得更好吗?推荐一下呗!



  13. 算法移植的,程序不完整,增加破解难度,这种的最安全,@dg336699   

    壳加密?嵌入式算法植加密?听起来好神奇,我是做数据统计工作的,哪种加密方式更适合我呢?



  14. 壳加密?嵌入式算法植加密?听起来好神奇,我是做数据统计工作的,哪种加密方式更适合我呢?


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

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


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

    简单来说,是没有影响的,当然也要参考算法的复杂度