1、堆栈相关指令push:把一个32位的操作数压入堆栈中。这个操作导致esp被减4。esp被形象地称为栈顶。我们认为顶部是地址小的区域,那么,压入堆栈的数据越多,这个堆栈也就越堆越高,esp也就越来越小。在32位平台上,esp每次减少4(字节)。pop:相反,esp被加4,一个数据出栈。pop的参数...
分类:
其他好文 时间:
2015-06-04 13:27:25
阅读次数:
92
一、堆栈 栈,按照先进先出的原则存储数据,栈底固定,栈顶浮动,也被称为先进后出表。在i386机器中,栈顶由esp的寄存器进行定位,压栈的操作使栈顶的地址减小,弹出的操作使栈顶的地址增大。栈在程序的运行中有着举足轻重的作用,栈保存了一个函数调用时所需要得维护信息这常常被称为堆栈帧。栈一般包含以下两方....
分类:
其他好文 时间:
2015-06-02 00:21:18
阅读次数:
96
调用DLL函数,出现错误Run-TimeCheckFailure#0-ThevalueofESPwasnotproperlysavedacrossafunctioncall.Thisisusuallyaresultofcallingafunctiondeclaredwithonecallingcon...
分类:
其他好文 时间:
2015-05-30 00:35:51
阅读次数:
202
Borland Delphi 6.0 - 7.000509CB0 > $ 55 PUSH EBP00509CB1 . 8BEC MOV EBP,ESP00509CB3 . 83C4 EC ADD ESP,-1400509CB6 . 53 PUSH EBX00509CB7 . 56 PUSH ESI0...
分类:
编程语言 时间:
2015-05-28 00:30:28
阅读次数:
285
今天学习了一下汇编语言的基础知识,自己将整数寄存器的内容整理了一下。
一个32位CPU中,包含了8个存储32位值的寄存器,分别表示为:%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp 。可见名字都是以%e开头。
这些寄存器用来存储整数数据和指针。它们的大致功能如下:
%eax,可存放一般数据,而且可作为累加器使用;
%...
分类:
其他好文 时间:
2015-05-15 17:54:37
阅读次数:
150
(转)ESP和EBP指针寄存器2012-04-12 20:37:18分类:嵌入式ebp和esp是32位的SP,BPesp是堆栈指针ebp是基址指针ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和...
分类:
其他好文 时间:
2015-05-14 20:30:16
阅读次数:
202
大神做题目从来都喜欢炫技,把大神手脱壳(就是一个ESP而已233)的小题目整理一下发上来,自动过滤所有炫(dou)技(bi)部分~ ps 大神现在做题都国际化了233 ps2 以后可能转Linux了,做windows被嫌弃【捂脸】 来源: Securinets Quals CTF 2015 题目:找...
想要在画面里画点什么东西,就需要往VRAM的内存区里写入点什么东西。但是如何写入呢?作者先用了汇编: _write_mem8: ; void write_mem8(int addr, int data); MOV ECX,[ESP+4] ; [ESP + 4]中存放的是地址,将其读入ECX MOV ...
分类:
其他好文 时间:
2015-04-16 17:19:01
阅读次数:
115
上文讲到call之后,程序发生跳转。之后因为博主设错了一个断点,结果折腾了整整一周,真是欲哭无泪。 这才是正确的断点设置啊TAT。这是call之后的语句。 01281427 83 C4 08 add esp,8 执行call之后ESP的值减少4。在memory窗体中查看ESP的值。 由小端机存储可只...
分类:
编程语言 时间:
2015-04-16 00:55:35
阅读次数:
220