本文所涉及的文件(如果有的话)大部分可以通过文章末尾的链接下载.

某一道CTF题目(题目下载见文末)RE4中的提示如下:
DbgPrint("Hint:This value is a widely used hex value in computer science.\n");
DbgPrint("it consists of two words of 4 characters with hex letters of 'A' to 'F'(inclusive).\n");
DbgPrint("The first word has the same meaning as \"deceased\"\n");
DbgPrint("The second word represents a kind of meat.\n");
有人写了个WriteUp,说'很容易'得出这四字节的十六进制是0xDEADBEEF.当时我就震惊了,这尼玛,我居然根本不知道.赶快上网搜索总结一下. 这道题到现在我还没有做出来....谁能给我讲会了...我可以请你吃饭撒...-_-



简介

计算机领域内有许多魔数,这些魔数一般是一个常量值,用来表示一个文件格式,协议类别或者文件签名等等, 这种魔数之所以会产生,我觉得是必然的,这个我是深有体会,在安天实验室实习的时候,写过一个OllyDbg调试器的插件, 当时在CERT部门实习,就用到了CERT作为一个魔数,代码片段如下:


有些魔数比较容易看出其意义所在,就比如文章开头所提到的0xDEADBEEF,而有些给人则是一头雾水,就比如下面这个平方根倒数快速算法:


上面的注释就是原有注释,看见这种代码简直莫名其妙,然而它还是完美工作的.这很让人抓狂.

常见的魔数

现在就让我们来总结一些常见的魔数. 相关文件下载:http://pan.baidu.com/s/1o7WPuuI
参考链接:
  1. https://en.wikipedia.org/wiki/Fast_inverse_square_root
  2. http://www.howtogeek.com/201059/magic-numbers-the-secret-codes-that-programmers-hide-in-your-pc/
  3. https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_debug_values