博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PC软件加密方案
阅读量:6689 次
发布时间:2019-06-25

本文共 898 字,大约阅读时间需要 2 分钟。

hot3.png

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

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

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

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

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

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

转载于:https://my.oschina.net/u/2955002/blog/1942161

你可能感兴趣的文章
B树 B+树 B*树
查看>>
转载:汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊?
查看>>
友盟添加事件统计
查看>>
洛谷P2824 排序
查看>>
微服务架构盛行的时代,你需要了解点 Spring Boot
查看>>
C#动态编译
查看>>
PIE SDK地图显示范围截图
查看>>
jmeter之 jp@gc - PerfMon Metrics Collector
查看>>
gitlab4.0_工程提交
查看>>
JavaEE Tutorials (14) - 用实体图创建获取计划
查看>>
Loadrunner脚本编程(1)-大体思路
查看>>
TPS、并发用户数、吞吐量关系
查看>>
FastJSON实现详解
查看>>
APK.错误解决_Theme.AppCompat.Light相关
查看>>
Android Design Support Library使用详解
查看>>
python读取文件最后一行两种方法
查看>>
如何调用带参数的函数
查看>>
机器学习(三)决策树学习
查看>>
I.MX6 Linux、Jni ioctl 差异
查看>>
jq 自定义标注小组件 $.widget
查看>>