.Net 加密原理,加密壳核心的兼容性以及安全性讨论(六)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 前面我们介绍了目前主流的双层加密壳核心实现原理, 同时提到了应对兼容性,同时考虑安全性的前提下对加密壳核心进行简化。 今回主要讨论一下安全性、兼容性需要注意哪些因素。 关于安全性,主要应对两类破解者。

前面我们介绍了目前主流的双层加密壳核心实现原理,
同时提到了应对兼容性,同时考虑安全性的前提下对加密壳核心进行简化。
今回主要讨论一下安全性、兼容性需要注意哪些因素。

关于安全性,主要应对两类破解者
1、静态分析脱壳
对于这一类,行之有效的方法就是增加加密算法的数量和复杂度。
加密壳核心的实现方式对其影响可忽略。

2、动态框架核心层拦截
对于这一类有两种防范,一是针对框架核心层进行检测,对Hook进行反制。
二是构造合理的加密壳核心模式,将核心数据局限在加密壳运行库范围内,
使破解者在加密壳运行库范围外拦截不到全部所需的信息。

关于兼容性,主要有两类
1、对未知框架环境的兼容
因为不同框架核心中各个函数的物理地址可能不一样,这就是兼容的最大麻烦,
所以尽可能少的hook框架核心函数能增加对未知框架的兼容性。

2、和其它加密壳并存的兼容性问题
这种情况比较少见,但也是不容忽视的。

如:某.Net中间件厂商使用A加密了其产品,另一家软件公司使用了该中间件,而这家公司又要使用B加密自己的产品。
这时就出现了一个软件环境中出现两种加密壳核心的情况。
不过这种情况基本上可以不用太多顾虑,一般这两家公司之间可以协调解决。

但是另外一种情况就比较难办了:
Web应用在虚拟主机上的问题,如果在同一虚拟主机上部署两种不同加密壳加密的web应用,也同样要面临这个问题。

怎么处理这个问题
在安全性方面对框架进行检测,反制拦截破解者,这样将对第2个兼容性产生问题。

所以理想的方案是使用第二种构造合理加密壳核心来加强安全性,这样不会对兼容性造成负面影响。
当然,如果你决定不考虑和其它加密壳的兼容性问题也就不用理会这个问题了。

撇开兼容性的第二条,我们来看看第一条。
麻烦的根源是函数地址的未知性,尤其是对于mscorwks.dll中的函数地址,没有任何参考点。
唯一的兼容方法就是模糊搜索,所以尽量减少对mscorwks.dll中的hook能在一定曾度上提高兼容性。

mscorjit.dll中的函数比较容易准确确定,因为它又一个入口函数地址可以直接获取到,
然后顺藤摸瓜就能把下级函数地址获取到,当然这需要一个小型的反汇编引擎。搜索1到3层基本上是没啥问题的了。

结论:mscorwks.dll是双层加密壳兼容性的瓶颈所在。

前面提到对框架进行检测,会影响兼容性,其实,这种方法对安全性的提高并没有多大的实质性帮助。
主要原因,加密壳要考虑兼容性(兼容未知框架)以及程序效率,所以不可能对框架进行全面检测,检测范围有限,同时因为hook方式的多样性,检测成功率也比较低。
对付一些初级用户也许能收到一点效果。

那么怎么办呢
下回我们将介绍加密壳核心兼容性和安全性共赢的实现模式,纯Jit层核心的实现。

目录
相关文章
|
5月前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
45 3
|
10天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
2月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
35 5
|
2月前
|
存储 前端开发 安全
如何确保前端框架数据驱动方式的数据加密存储的兼容性?
确保前端框架数据驱动方式的数据加密存储的兼容性需要综合考虑多个因素,通过充分的评估、测试、关注和更新,以及与其他技术的协调配合,来提高兼容性的可靠性,为用户提供稳定和安全的使用体验。
39 2
|
2月前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
45 3
|
3月前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。
|
3月前
|
存储 开发框架 .NET
浅析.NET6中的await原理
浅析.NET6中的await原理
57 1
|
4月前
|
安全 Java 数据安全/隐私保护
- 代码加密混淆工具-Java 编程安全性
在Java编程领域,保护代码安全与知识产权至关重要。本文探讨了代码加密混淆工具的重要性,并介绍了五款流行工具:ProGuard、DexGuard、Jscrambler、DashO 和 Ipa Guard。这些工具通过压缩、优化、混淆和加密等手段,提升代码安全性,保护知识产权。ProGuard 是开源工具,用于压缩和混淆Java代码;DexGuard 专为Android应用程序设计,提供强大加密功能;Jscrambler 基于云,保护Web和移动应用的JavaScript及HTML5代码;DashO 支持多种Java平台和
269 1
|
5月前
|
存储 算法 Java
深入理解.NET中的托管堆及其工作原理
【8月更文挑战第31天】
55 1
|
5月前
|
存储 算法 网络安全
二进制加密PHP Webshell原理及简单实现
二进制加密PHP Webshell原理及简单实现
140 8