`

VC中关于 0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明

 
阅读更多
VC中关于 0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明
VC在调试时,可能会报“写入位置0xcccccccc 时发生访问冲突”,或者“写入位置0xcdcdcdcd 时发生访问冲突”,这些问题可能是由于使用了未初始化的指针引起的。
        在 Debug 模式下,VC 会把未初始化的栈内存上的指针全部填成 0xcccccccc ,当字符串看就是 “烫烫烫烫……”,会把未初始化的堆内存上的指针全部填成 0xcdcdcdcd,当字符串看就是 “屯屯屯屯……”。那么调试器为什么要这么做呢?
        VC的DEBUG版会把未初始化的指针自动初始化为0xcccccccc或0xcdcdcdcd,而不是就让取随机值,那是为了方便我们调试程序,如果野指针的初值不确定,那么每次调试同一个程序就可能出现不一样的结果,比如这次程序崩掉,下次却能正常运行,这样显然对我们解bug是非常不利的,所以自动初始化的目的是为了让我们一眼就能确定我们使用了未初始化的野指针了。

        常见默认值说明:
        0xcdcdcdcd - Created but not initialised

        0xdddddddd - Deleted

        0xfeeefeee - Freed memory set by NT's heap manager

        0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ

        0xabababab - Memory following a block allocated by LocalAlloc()
分享到:
评论

相关推荐

    基于2024华为昇腾AI原生创新算子挑战赛S1的0xCCCCCCCC队伍Python设计源码

    该项目为2024华为昇腾AI原生创新算子挑战赛S1的参赛队伍0xCCCCCCCC所提交的Python设计源码,涉及969个文件,包括238个预编译的Python代码文件、215个Python源代码文件、156个Shell脚本、72个文本文件、56个CMake配置...

    MS07-014漏洞分析.doc

    为了调试目的,研究者将Shellcode中的0x90909090替换为0xcccccccc,这样可以在执行到Int 3指令时暂停程序运行,便于进一步分析。 #### 覆盖分析 通过分析发现,在漏洞触发时,EBP的值等于0x6D634,而ESP的值等于0x...

    C++汇编[定义].pdf

    `lea edi, [ebp-0C0h]`和`mov ecx, 30h`以及`rep stosd`的组合用于初始化分配的局部变量空间,填充以0xCCCCCCCC的值,这通常用于调试,便于检测未初始化的内存。 函数的主体部分,如`call Function::SetAge`和`call...

    C语言中void.pdf

    10. Debug和Release版本:文档还提到了在不同的编译配置中,指针值可能有不同的表现,比如在Debug模式下,可能会输出特定的填充值0xCCCCCCCC,表示未初始化的内存。而在Release版本中,这些未初始化的内存可能显示为...

    Win32环境下函数调用的堆栈之研究

    3. **初始化局部变量**:汇编代码中的 `stos` 指令用于填充栈帧中的局部变量区域,这里用 0xCCCCCCCC 填充,这是一种调试技巧,用于标识未使用的内存。 4. **变量赋值**:`mov [ebp-4], 0`、`mov [ebp-8], 61h` 和 ...

    2019-6-21文件操作、堆.md.pdf

    在Debug版本中,局部变量如果没有显式初始化,编译器可能会默认给这些变量赋予特定的值,如0xcccccccc。这个问题在程序正式发布时通常不会出现,因为正式版本编译器会优化掉未初始化变量的问题。 在文件操作的上下...

    CSerialPort串口类最新修正版2017-02-14

    改进ReceiveStr方法,comstat.cbInQue = 0xcccccccc的情况(如串口异常断开),会导致RXBuff初始化失败 by itas109 on 2017-02-14 http://blog.csdn.net/itas109 https://github.com/itas109 兼容ASCII和UNICODE...

    CSerialPort串口类最新修正版2016-08-10

    CSerialPort ... ... 增加 ClosePort 增加 WriteToPort 两个...改进ReceiveStr方法,comstat.cbInQue = 0xcccccccc的情况(如串口异常断开),会导致RXBuff初始化失败 博客:blog.csdn.net/itas109 Email:itas109@qq.com

    堆栈平衡ppt

    - 使用`move ax,0CCCCCCCCh`和`rep stos dwordptr [edi]`指令来初始化栈空间的值为`0xCCCCCCCC`。 5. **局部变量操作**: - 使用`move`和`add`指令对局部变量进行操作。例如,在`a = a + 3;`语句中,通过`move ax...

Global site tag (gtag.js) - Google Analytics