帧栈结构是一种机器实现切换上下文的机制。具体介绍看 http://blog.csdn.net/yxysdcl/article/details/5569351 IA32体系涉及寄存器保存问题,%eax,%ecx,%edx由调用者保存,%ebx,%esi,%edi由被调用者保存,%esp,%ebp分别是 ...
分类:
其他好文 时间:
2016-06-28 21:56:16
阅读次数:
181
栈帧(stack frame),机器用栈来传递过程参数,存储返回信息,保存寄存器用于以后恢复,以及本地存储。为单个过程(函数调用)分配的那部分栈称为栈帧。栈帧其实是两个指针寄存器, 寄存器%ebp为帧指针,而寄存器%esp为栈指针,当程序运行时,栈指针可以移动(大多数的信息的访问都是通过帧指针的)。 ...
分类:
系统相关 时间:
2016-06-28 07:04:13
阅读次数:
530
debug版本 esp 栈顶指针 ebp 存放堆栈指针 空程序:int main(){00411360 push ebp ;压入ebp00411361 mov ebp,esp ;ebp = esp,保留esp,待函数调用完再恢复,因为函数调用中肯定会用到esp.00411363 sub esp,0C ...
分类:
其他好文 时间:
2016-06-25 06:13:03
阅读次数:
231
1、OD 加载exe --> 运行到用户代码,断下之后 --> 堆栈窗口 ESP 右击 数据窗口中跟随 --> 将数据窗口的下拉框拉到最下面 (或者直接看堆栈窗口) 如下图: ZC: 此图效果为 XPsp3中的效果,有如下信息: (1)、此时的 ESP值为 0012FFC4,其值 正好就是 调用ke ...
一、常用指令
二、算术运算指令
三、逻辑运算指令
四、串指令
五、程序跳转指令
------------------------------------------
计算机寄存器分类简介:
32位CPU所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS...
分类:
其他好文 时间:
2016-06-21 07:06:50
阅读次数:
166
一张图说明我的理解: 画的是新开辟栈帧的过程,退出当前栈帧的过程与之相反。pop edi ,pop esi , pop ebx ,mov esp,ebp ,pop ebp 。之后,edi,esi,ebx恢复原来状态,ebp指向上一个栈帧栈底,esp指向上一个栈帧栈顶。 ...
分类:
其他好文 时间:
2016-06-18 22:18:58
阅读次数:
243
1、在xv6 内核中 通过 nm kernel | grep _start 找到kernel的起始地址是0010000c 2、 br * 0x0010000c 设置断点,(如果在函数start处设断点就是 br start) 3、c 继续执行到这个断点 4、查看寄存器,找到通过esp找到程序在内存中 ...
分类:
数据库 时间:
2016-06-10 16:18:32
阅读次数:
386
程序破解 一、建立1.c文档 二、编译并查看 命令为:gcc -o 1 1.c 反汇编:objdump -d 1 三、转16进制 命令::%!xxd main函数的汇编代码中可以看出程序在调用“scanf”函数请求输入之后,对 [esp+0x1c] 和 [esp+0x18] 两个内存单元的内容进行了 ...
分类:
系统相关 时间:
2016-06-01 19:39:50
阅读次数:
234
【文章标题】: IPAdr.exe破解【软件名称】: IPAdr.exe【加壳方式】: 无【编写语言】: delphi【使用工具】: OD【作者声明】: 失误之处敬请诸位大侠赐教! 【详细过程】 00405E7F |. 8BE5 mov esp, ebp 00405E81 |. 5D pop ebp ...
分类:
其他好文 时间:
2016-05-31 06:28:08
阅读次数:
174
1、代码位置: ZC: 上面的“大块局部变量区域” ESP从0012EBA0跳到了0012EAF0,其中有大量的遗留信息,OD同样会对它们作注释 可能会提示如下内容: (1)、CALL的返回地址 (提示信息类似于“返回到 ????????”) (2)、指向偏移 (提示信息类似于“OFFSET ??? ...
分类:
其他好文 时间:
2016-05-30 11:23:36
阅读次数:
177