当前位置: 代码迷 >> 汇编语言 >> int 三是0cch还是0CCCCCCCCh
  详细解决方案

int 三是0cch还是0CCCCCCCCh

热度:177   发布时间:2016-05-02 04:32:17.0
int 3是0cch还是0CCCCCCCCh
int 3与0cch和0CCCCCCCCh是啥关系呀,很多资料是说int 3机器码0cch,这一点不难,但在那些资料上马上就出现了矛盾的地方,那就是下面
lea edi,[ebp-0c0h]

mov ecx,33h
mov eax,0CCCCCCCCh
rep stos dword ptr [edi]
几乎所有说int 3机器码0cch的资料,都会接着讲上面的代码,上面的代码大体意思是将一定的区域ebp-0c0h开始的区域初始化为0CCCCCCCCh,这是因为把它们全部初始化成0CCCCCCCCh后,运行到那里就会停止,这问题就出来了
上面不是说int 3机器码0cch是吗,所以填充那些区域的也应该是0cch呀,怎么会是0CCCCCCCCh?是我眼瞎还是作者眼瞎
------解决方案--------------------
0CCCCCCCCh 就是4个int 3啊  一般debug模式编译时候会编译这个
------解决方案--------------------
这几条指令填充的 是 4 * 33h  个 int 3  至于debug模式为啥编译这个 我不觉得你现在应该研究 等你需要的时候自然就明白了
指令可以写成如下形式,不过运行起来慢很多

mov ecx,4 * 33h
mov eax,0CCh
rep stos byte ptr [edi]
  相关解决方案