gpt4 book ai didi

linux-kernel - 0xdead000000000000 是什么意思?

转载 作者:行者123 更新时间:2023-12-04 05:11:53 26 4
gpt4 key购买 nike

这个值出现在poison.h(linux source\include\linux\poison.h)中:

/*
* Architectures might want to move the poison pointer offset
* into some well-recognized area such as 0xdead000000000000,
* that is also not mappable by user-space exploits:
*/

我只是好奇值 0xdead000000000000 的特殊性?

最佳答案

很确定这只是死牛肉的一种变种;即它只是一个易于识别的信号值(参见 http://en.wikipedia.org/wiki/Hexspeak 了解死牛肉)

指针中毒的想法是确保中毒列表指针不能在不导致崩溃的情况下使用。假设您从它所在的列表中取消链接一个结构。然后您希望使指针值无效以确保它不会再次用于遍历列表。如果代码中某处存在错误——悬空指针引用——您希望确保任何试图通过这个现在未链接的节点跟随列表的代码立即崩溃(而不是稍后在某些可能不相关的代码区域)。

当然,您可以简单地通过在指针中放置空值或任何其他无效地址来毒化指针。使用 0xdead0000000000000 作为基值可以更容易地将明确中毒的值与用零初始化或被零覆盖的值区分开来。它可以与偏移量 (LIST_POISON{1,2}) 一起使用来创建多个不同的毒值,这些毒值都指向虚拟地址空间的不可用区域,并且一眼就可以识别为无效。

关于linux-kernel - 0xdead000000000000 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com