欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Advanced Windows Debugging的第五章

Advanced Windows Debugging的第五章

准备开始新的阶段好好学习了,发篇译文鼓励下自己。
第一次发翻译文章,排版啊什么的可能都有点乱,大家将就下吧。
不对的地方那是肯定有的,如果你有空,请MAIL我修正,谢谢!

附件中有pdf和word两个版本,应该总有一款适合你吧。

另外,原文肯定是没办法贴出来了,来个第一页意思一下:
CHAPTER 5 MEMORY CORRUPTION PART ISTACKS
A memory corruption is one of the most intractable forms of programming error for
two reasons. First, the source of the corruption and the manifestation might be far
apart, making it difficult to correlate cause and effect. Second, symptoms appear
under unusual conditions, making it hard to consistently reproduce the error.
    Fundamentally, memory corruption occurs when one or both of the following are
true.
    ■ The executing thread writes to a block of memory that it does not own.
    ■ The executing thread writes to a block of memory that it does own, but corrupts the state of that memory block.
To exemplify the first condition, consider this small application:
#include <windows.h>
#define BAD_ADDRESS 0xBAADF00D
int __cdecl wmain (int argc, wchar_t* pArgs[])
{
    char* p =(char*)BAD_ADDRESS;
    *p=’A’;
    return 0;
}
This small application declares a pointer to a char data type and initializes the pointer to an address for which it does not have access (0xBAADF00D). The net result of running the application is a crash, and the dreaded Dr. Watson UI pops up. Although it’s very clear that this simple application performs an invalid memory access, more complex systems can be trickier to figure out.

上传的附件 5.Memory Corruption.doc

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功