kasan中地址计算的一点理解

简介: kasan中地址计算的一点理解

内核中利用kasan检查访问内存是否合法时需要将要访问的内存地址映射到shadow区中的对应位置,然后再判断在shadow区里存放的数值。

下面是转换函数:

static inline void *kasan_mem_to_shadow(const void *addr)
{
return (void *)((unsigned long)addr >> KASAN_SHADOW_SCALE_SHIFT)
            + KASAN_SHADOW_OFFSET;
}

为什么是上面的公式呢?

按照我们直观的理解,应该是:(addr - 内核虚地址起始地址) >> 3 + shadow区的起始地址

其实kasan_mem_to_shadow也是这么来的,只不过把其中的常量部分提前计算出来了,对上面的公式进行转换:

(addr >> 3) + shadow区的起始地址 - (内核虚地址起始地址 >> 3)

比如:

计算:

(addr >> 3) + ffffec0000000000 - (ffff800000000000 >> 3) = (addr >> 3) + 0xdffffc0000000000

对于x86,这个值是写死的:arch/x86/Kconfig

对于ARM64,是:

相关文章
|
7月前
|
监控 Serverless
函数计算(FC)作为一种无服务器的计算服务,在使用过程中可能会遇到各种问题
函数计算(FC)作为一种无服务器的计算服务,在使用过程中可能会遇到各种问题
76 4
|
网络架构
实验5 IP地址分配
实验5 IP地址分配
244 0
|
3天前
|
网络安全 数据库
【Azure Batch Account】批处理服务是否可以固定出口访问IP地址呢?
本文介绍了如何解决Azure Batch Account服务访问受防火墙保护资源的问题。由于Batch Account没有固定的出口IP地址,需要将其所有IP地址加入防火墙白名单。文章提供了创建具有指定公共IP地址的Batch池的方法,并详细说明了配置步骤和注意事项。参考文档包括Azure IP范围和服务标签以及创建具有指定公共IP地址的Azure Batch池的官方指南。
|
4月前
|
运维 监控 Serverless
什么是无服务器计算?
【8月更文挑战第13天】
124 5
|
4月前
|
前端开发 Serverless Docker
函数计算产品使用问题之怎么获取客户端IP
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
存储 监控 Serverless
函数计算产品使用问题之如何更改镜像地址
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
这几个IP地址块聚合后,可用地址数是多少?你造吗?
这几个IP地址块聚合后,可用地址数是多少?你造吗?
103 0
|
5月前
|
运维 关系型数据库 Serverless
函数计算产品使用问题之如何在日志中打印出你本地机器的IP地址
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
并行计算 前端开发 Serverless
函数计算产品使用问题之如何将一个域名的不同路径或方法映射到不同的函数计算服务上
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
运维 Serverless Linux
函数计算产品使用问题之要实现仅允许特定公网IP访问部署在FC上的服务,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。