码迷,mamicode.com
首页 >  
搜索关键字:esp    ( 410个结果
linux-0.11内核 任务的堆栈切换
一直缠绕的两个问题:怎样标识的内核栈与用户栈?如何在内核态堆栈与用户态堆栈之间切换? 用户态堆栈指针:ss和esp; 内核态堆栈指针:ss0和esp0; 二者均位于任务的tss结构中。这里的任务是指除任务0和1之外的普通任务。 CPU进行用户态堆栈到内核态堆栈的切换操作时,CPU会从当前任务的任务状...
分类:系统相关   时间:2014-10-10 23:09:25    阅读次数:252
Alictf Writeup
Alictf WriteupReverse1. Ch1根据题目描述,首先在Ch1.exe文件中搜索Secret.db字符串,如下所示。之后定位文件创建和数据写入位置,如下所示。可以看到,写入数据的地址位于esp+30h+var10,而在之前调用了data_handle函数对齐进行了处理,data_h...
分类:其他好文   时间:2014-09-22 19:20:13    阅读次数:471
linux-0.11内核 任务的堆栈切换
http://blog.163.com/di_yang@yeah/blog/static/86118492201212534924900/一直缠绕的两个问题:怎样标识的内核栈与用户栈?如何在内核态堆栈与用户态堆栈之间切换?用户态堆栈指针:ss和esp;内核态堆栈指针:ss0和esp0;二者均位于任务...
分类:系统相关   时间:2014-09-22 10:32:22    阅读次数:229
C#值类型和引用类型用C语言理解
我刚用C#一个来月,可能理解得不对,还请大家指教。 读懂文章你需要对C语言的指针有所理解。 需要注意区别:对C\C++来说,任何类型都可以当成C#的“引用类型”,因为有指针。 【在内存上】 void foo() { int aaa = 0; //值类型,aaa在Stack上分配(SUB ESP,XX) int* paaa = new int[123]; //引用类型,paaa在Heap上分配,HeapAlloc(GetProcessHeap()...) foo2(&aaa); //【引用】值类型a...
分类:编程语言   时间:2014-09-21 21:50:51    阅读次数:229
WinDBG中条件字符串设断点
以我在notepad.exe中设置CreateFileW特定文件名断点为例。bpkernel32!CreateFileW"r$t1=poi(esp+4);as/mu$FileName$t1;.block{.if($sicmp(\"${$FileName}\",\"C:\\abc.txt\")!=0){.echoc:\\abc.txt}.else{.echononono;gc}}"bpkernel32!CreateFileW"r$t1=poi(esp+4);as/mu$FileN..
分类:数据库   时间:2014-09-02 18:09:45    阅读次数:256
汇编中retn 4的含义详析
retn 4是个函数返回指令。以前一直纠结这个retn的寄存器操作顺序,手头正好在调试,详细跟了一下,豁然开朗,特分享。先假设个环境:retn 4未执行时,ESP=0013feb8;EIP=5d1d8b97;而[0013feb8]=7c974a19执行retn 4之后:首先EIP=[0013feb8...
分类:其他好文   时间:2014-08-29 14:30:07    阅读次数:306
汇编中Enter与Leave指令
Enter的作用相当==push ebp和mov ebp,esp这后面两句大家很熟悉吧?函数开始一般都是这两句Leave的作用相当==mov esp,ebp和pop ebp而这后面这两句也很常见,函数调用完后一般的用到以上的Enter和leave的作用分别函数开始和结束Win32汇编中局部变量的使用...
分类:其他好文   时间:2014-08-23 22:56:41    阅读次数:333
求两圆相交的面积
//求两圆相交的面积#include#include#include#include#include#include#define esp 1e-8using namespace std;struct Circle{ double x,y; double r;};double calAr...
分类:其他好文   时间:2014-08-23 18:55:31    阅读次数:276
30天自制操作系统之第15天 多任务(1)
多任务的本质是利用定时器和far跳转在任务之间进行切换,具体来说,一开始先运行main函数(就是处理我们的鼠标、键盘和定时器等事件),0.02s后定时器超时,执行如下语句: farjmp(0, 4 * 8); 这是一个far跳转,先看一下farjmp的实现: _farjmp: ; void farjmp(int eip, int cs) JMP FAR [ESP+4] ; eip, c...
分类:其他好文   时间:2014-08-15 16:07:30    阅读次数:169
局部变量与堆栈
我们知道函数中的局部变量存储在堆栈之中,如下图所示,当局部变量1、2、3存到堆栈中后,堆栈指针ESP并没有下移,依然指向原来的位置。出现这种情况的原因是:局部变量进入堆栈并不是使用push而是使用mov操作,所以ESP无变化。正是因为这样,如果函数把任何数据压入堆栈,那么局部变量将会被覆盖。 为了保...
分类:其他好文   时间:2014-08-13 22:00:17    阅读次数:259
410条   上一页 1 ... 36 37 38 39 40 41 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!