.Net 加密原理,HVM核心的实现原理(八)

简介: 目前加密壳将核心转移到Jit层后,内核模式的强度增加空间已经很小了。目前市面上的加密壳至少有一个共同的缺陷,无法防止Jit底层截获IL字节码。 有些壳采用从周边增加强度(如 Anti Hook),由于hook的多样性再加上壳又需要考虑自己的兼容性,所以这个效果不是十分理想。

目前加密壳将核心转移到Jit层后,内核模式的强度增加空间已经很小了。目前市面上的加密壳至少有一个共同的缺陷,无法防止Jit底层截获IL字节码。

有些壳采用从周边增加强度(如 Anti Hook),由于hook的多样性再加上壳又需要考虑自己的兼容性,所以这个效果不是十分理想。
从防止脱壳入手,通过保护局部变量签名和异常处理表,来阻止方法体的脱壳还原。这样虽然不能阻止截获IL字节码,如果配合流程混淆还是能起到相对有效的保护。
这样仍然有些遗憾,能实现阻止Jit层截获完整的IL字节码就完美了。

http://www.DNGuard.Net/
DNGuard HVM 核心就是为了实现这一点——Jit层中无法截获完整正确的IL代码,它将保护的粒度从原来的"每方法体"降低到"每操作码(HVM伪代码)" 。实际原理也有不同,在Jit编译处理过程中HVM伪代码不会直接还原为IL代码,而是由HVM运行库参与编译实现直接 HVM伪代码-》本地代码。实际上就是HVM核心实现了IL代码一个子集的编译功能。

效率问题:
如果普通ILCode也需要经过HVM核心处理判断一面,是否会造成性能损失?
这个问题没有,HVM核心是利用Win32的异常处理机制动态装载的。只有HVM伪代码才会触发HVM核心的装载。在一个HVM方法编译完成之后,HVM核心会自动卸载。

HVM代码的编译相比ILCode的编译,是否会造成性能损失?
答案是肯定的,HVM提供了一个强度选项,可设置1-5.指示对ILCode进行伪代码替换的比例。
例如设置为1时,只对函数调用指令进行替换。对于函数调用指令的编译实际上是很简单的。
默认设置3,是一个实际性能损失比较小的设置,和纯加密方式相比,基本上可忽略。

 

伪代码动态性:
HVM代码是动态的,静态模式下(强度小于等于3)每个加密模块会有5+种不同方案。每个加密模块的方案各不相同。方案是由模块标识码 + 客户标识码 来动态生成的。
动态模式下,会在HVM核心中对代码进行二次处理,每个方法都会有一个动态的随机方案。
在Jit中截获的伪代码是动态随机的,各个方法中截获的伪代码没有必然的对应关系。

目录
相关文章
|
4月前
|
机器学习/深度学习 算法 网络架构
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
1142 0
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
|
4月前
|
存储 移动开发 安全
Flutter加固原理及加密处理
Flutter加固原理及加密处理
85 0
|
3天前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
18 3
|
24天前
|
存储 算法 网络安全
二进制加密PHP Webshell原理及简单实现
二进制加密PHP Webshell原理及简单实现
44 8
|
4月前
|
存储 安全 算法
无线加密技术的种类、工作原理
【4月更文挑战第22天】
163 0
|
2月前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
52 10
|
16天前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
49 0
|
2月前
|
算法 安全 Java
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
|
3月前
|
Java C# 数据安全/隐私保护
|
4月前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
下一篇
云函数