您的位置:首页 > 解决方案 > 使用外壳加密方式保护软件防盗版解决方案
使用外壳加密方式保护软件防盗版解决方案
2013/3/12

    软件加密有两种方式,一种是内嵌式加密,这种加密方式要求具有源程序(源代码),在源程序中调用我们提供的接口函数,在被加密程序中访问加密锁。另外一种就是外壳加密,它不同于传统的嵌入源代码的加密方式,是一种直接对可执行文件(.exe)加密的加密方法。这种方法不需要源程序,加密过程简单、方便。脱离“加密锁”,软件将不能运行。“外壳”就是在可执行程序的外面加上一层壳,保护你的程序不被其他人随意的窃取或改动而制作的加密程序,就是把主动权交给了外壳,让外壳来控制程序的运行和关闭。
    外壳加密不需要任何的经验,也不需要你是编程高手,只要你有磐石为你打造的外壳加密程序,几分钟的时间即可完成对软件的加密。另外,加密后的程序对执行速度也不会有什么影响。
    说明:外壳加密的对象主要是EXE、DLL、OCX等标准Win32格式的文件,不能对DotNet的程序加密。DotNet程序有另外的混淆工具,详细请咨询磐石技术人员。
NT系列外壳工具实现以下功能
1、输入表加密   输入表是 PE 文件的必要组成部分,用于引导 PE 文件导入所需的 API 函数;加密输入表可以在一定程度上防止破解者还原导入函数的功能。主要有输入表重定向和模拟导入函数功能,在一定程度上可以防止破解者还原导入函数的功能。外壳会删除原始输入表,然后模拟函数导入功能,将保护后文件的输入表分配到随机地址,这样类似的输入表修复工具就无法修复保护后的 IAT 表。
2、反调试   破解者通常使用调试器来分析软件的工作流程。外壳一般会通过某种方法来干扰调试器的正常工作,比如使之崩溃或异常退出等,来达到保护软件不被动态分析的目的。
3、文件校验  文件完整性检查,校验文件是否被非法修改    将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的md5信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算md5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件
4、校验附加数据   检查附加的数据是否被非法修改。    附加数据是在附加在文件后面的,不被映射到内存空间中的数据,他提供他自己的程序打开自己来读取。以验证附加数据的正解性。
5、只读区段校验   效验被加密程序只读取段的内容,防止被 HOOK 或修改。
6、多线程序校验   多线程解码时线程间相互校验,防止程序被附加调试。
7、保留附加数据   有的程序末尾会有一段附加的数据,比如程序运行所必需的配置信息等。如果不激活此选项,程序被加密/压缩时会丢失这些附加数据,导致程序无法正确运行。
8、压缩资源图标   资源图标在文件中占用很大比例,压缩资源可以极大的减少保护后程序的体积;加密资源可以有效的防止其他人修改,资源的结构很复杂,破解者想要恢复加密后的资源到原始资源是非常困难的。