汇编
moonhedgehog
这个作者很懒,什么都没留下…
展开
-
从汇编看一个小程序的完整执行过程
用VS建立工程,写一个C文件。代码如下:#include void main(){char a = 1; char c[] = "1234567890"; char *p ="1234567890"; a = c[1]; a = p[1];} 这个小程序是怎样执行的呢,两个赋值的区别在于什么地方?调试一下!反汇编可以看到代码如下:#include void main(){012C13A0 push ebp 012C13A1 mov ebp原创 2010-11-23 17:41:00 · 865 阅读 · 0 评论 -
32位CPU寄存器和汇编指令
<br />32位CPU所含有的寄存器有:<br />4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)<br />1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。 对低16位数据的存取,转载 2010-11-23 17:42:00 · 444 阅读 · 0 评论 -
深入C/C++之基于Cookie的安全检查(VS2005)
<br /><br />昨天在试着逆向一个有时间期限的LIB时,发现一些特别的检查函数,在之前的VC2003中是没有的,这些函数可谓是重量级函数。由于个人比较看不惯自己不懂的东西,出于不愤之情绪研究了下这些函数。首先在这里介绍个人认为较之其他几个更为重要的一种安全检查方式——基于Cookie的缓冲区溢出安全检查!<br />为了在发布版本中也能检测到缓冲区溢出,防止程序因缓冲区而受到攻击,VS2005(VC8)便增加了基于Cookie的安全检查。<br />在计算机领域,Cookie一词最早出现在网站开发中转载 2010-11-23 18:01:00 · 1215 阅读 · 1 评论 -
深入C/C++之基于CheckStackVars的安全检查(VS2008)
<br /><br />最近一直忙毕业的相关事情,加上工作,转眼间,又到月底了,之前承诺的每月一篇博文,前几天就一直在寻找到底要写什么,近两天又突然发现有很多东西可以写。本篇就先延续之前的一篇基于Cookie的安全检查机制(深入C/C++之基于Cookie的安全检查(VS2005))来介绍下另外一种在DEBUG版本下的安全检查,也就是CheckStackVars检查,话不多说,直接进入正题。<br />在VS2008下,函数的栈空间里如果存在数组,就会自动加上CheckStackVars检查,顾名思义,就是转载 2010-11-23 20:14:00 · 429 阅读 · 0 评论