http://www.cnblogs.com/zhuyuanhao/archive/2012/10/16/3262870.html 32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(E ...
分类:
其他好文 时间:
2017-02-27 20:43:57
阅读次数:
154
知识点: ? 浮点数的存放方式 ? st0至st7 ? FLD,FST,FADD指令 一、浮点数的存放方式 00401000 /$ 55 PUSH EBP 00401001 |. 8BEC MOV EBP,ESP 00401003 |. 51 PUSH ECX ... ...
分类:
其他好文 时间:
2017-02-06 15:56:09
阅读次数:
202
知识点: ?for循环生成代码1 ?for循环生成代码2 ?inc指令 一、一般情况下的for循环汇编代码分析 for (int i=1;iMOV DWORD PTR SS:[EBP-4],1 ; i=1; //0040100B |. EB 09 JMP SHORT for.00401016 //0... ...
分类:
其他好文 时间:
2017-02-06 14:31:37
阅读次数:
301
知识点: ?switch case生成的汇编框架 ?逆向汇编代码还原成C++代码 一、了解switch case结构 1、普通情况 00401011 |. 83C4 04 ADD ESP,4 00401014 |. C745 FC 20000>MOV DWORD PTR SS:[EBP-4],20 ... ...
分类:
其他好文 时间:
2017-02-06 10:49:14
阅读次数:
171
知识点: ? PUSH ? POP ? CALL堆栈平衡 ? RETN指令 一、PUSH入栈指令 (压栈指令): 格式: PUSH 操作数 //sub esp,4 ;mov [esp],EBP 操作数可以是寄存器,存储器,或者立即数 二、POP出栈指令 (弹栈指令) 格式:POP 操作数 //mov... ...
分类:
其他好文 时间:
2017-02-04 18:32:02
阅读次数:
814
运行结果: 查看反汇编的代码,发现:int nTmp = &a[4] - &a[0];00416B87 lea eax,[ebp-28h] 00416B8A lea ecx,[arrayTmp] 00416B8D sub eax,ecx 00416B8F sar eax,2 00416B92 mov ...
分类:
编程语言 时间:
2016-12-26 12:04:27
阅读次数:
211
1.回车找位置在一个变量的上(一般以[ebp+xxx]的形式表示)点击并回车可以找到该变量的具体位置,在标号上点击并回车可以转到标号所在的位置.2.对一个变量改名点中该变量(一般以[ebp+xxx]的形式表示),然后按n,输入新名字3.定义一个结构,枚举,数组类型打开结构窗口,按insert插入一个 ...
分类:
其他好文 时间:
2016-12-09 07:26:08
阅读次数:
130
首先更新一下第一次实验关于堆栈的分析,这里我直接手写拍的图片。 这里再补充一点,第5步的call f 实际上等于 pushl %eip,movl f %eip,也就是将f的eip地址压栈,call g原理相同。leave等于movl %ebp,%esp,popl %ebp 也就是将ebp出栈,epb ...
分类:
系统相关 时间:
2016-12-04 17:02:51
阅读次数:
266
gdb调试的时候会出现esp和ebp这两个指针,而这两个指针为我们查看栈的情况提供了方便。 简单点说,esp指向栈顶,而ebp指向栈底。例如一段程序: 1 #include <stdio.h> 2 3 int layout(int a){ 4 int b = a + 5; 5 return b; 6 ...
分类:
其他好文 时间:
2016-11-13 19:33:53
阅读次数:
187
4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省 ...
分类:
其他好文 时间:
2016-10-31 21:45:23
阅读次数:
218