首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0x死000000000000是什么意思?

0x死000000000000是什么意思?
EN

Stack Overflow用户
提问于 2015-01-06 15:03:42
回答 1查看 1.3K关注 0票数 6

这个值出现在泊松.h (linux源代码\包括\linux\泊松.h)中:

代码语言:javascript
复制
/*
 * 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的特殊之处

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-06 19:58:26

非常肯定,这只是死牛肉的一个变体;也就是说,它只是一个容易识别的信号值(参见http://en.wikipedia.org/wiki/Hexspeak中的死牛肉)

指针中毒的想法是确保中毒的列表指针不能在不造成崩溃的情况下使用。假设您从它所在的列表中断开了一个结构。然后,您希望使指针值失效,以确保它不再用于遍历列表。如果代码中有一个bug --一个悬空的指针引用--你想确保任何试图跟踪这个列表的代码都会立即崩溃(而不是在某个可能不相关的代码区域)。

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

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27801360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档