码迷,mamicode.com
首页 >  
搜索关键字:eip    ( 160个结果
函数栈帧
在函数栈帧中 一般包含以下几类重要信息 1 局部变量 :为函数局部变量开辟的内存空间 2 栈帧状态值:保存前 栈帧的顶部和底部 3 函数返回地址:保存当前函数调用前的“断点”信息,也就是函数调用前的指令位置 以便在函数返回时能够恢复到函数被调用前的代码区中继续执行指令。 EIP:指令寄存器:其内存放 ...
分类:其他好文   时间:2016-05-07 19:48:32    阅读次数:131
Linux内核分析——期中总结
期中总结 一、MOOC课程 (一)计算机是如何工作的 1、冯诺依曼体系结构的核心思想是存储程序计算机。 2、CPU在实际取指令时根据cs:eip来准确定位一个指令。 3、寄存器模式,以%开头的寄存器标示符。 立即数是以$开头的数值。 直接寻址:直接访问一个指定的内存地址的数据。 间接寻址:将寄存器的 ...
分类:系统相关   时间:2016-04-23 19:41:33    阅读次数:353
操作系统是怎么工作的——函数的堆栈框架
1框架模型 call指令: 1)将eip中的下一条指令的地址A保存在栈顶; 2)设置eip指向被调用程序的代码处。 ret指令:将地址A恢复到eip中 这样就将函数的调用变为顺序执行的指令流。 2框架形成 初始堆栈 1)call xxx(函数),执行call时, cs : eip原来的值指向call ...
分类:其他好文   时间:2016-04-18 22:09:22    阅读次数:207
第八周
一、理论知识 Linux系统的一般执行过程 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程 1. 正在运行的用户态进程X 2. 发生中断——save cs:eip/esp/eflags(current) to kernel stack, then load cs:eip(entry ...
分类:其他好文   时间:2016-04-17 09:01:02    阅读次数:216
栈溢出笔记1.3 准备Shellcode
经过1.1和1.2节的讲述,我们已经知道了如何更改EIP的值。程序执行函数之后将跳转到我们设定的位置开始执行,因此,我们需要准备一个自己的程序,接手后面的工作。这是一个什么样的程序?是一个C语言编写的代码?是一个可直接调用的exe?肯定不是,因为EIP所指的地址保存的内容为指令的操作码,CPU读取该操作码执行相应的操作。所以我们要准备的程序也应该是一段“操作码”。继续写1.1中的Hello Worl...
分类:系统相关   时间:2016-04-10 14:52:09    阅读次数:246
栈溢出笔记1.4 黑掉example_2
在1.2节中我们编写了一个有漏洞的程序,通过输入可以控制其EIP,本节,我们要让example_2运行我们的MessageBox。再看看example_2:/*****************************************************************************/ // example_2: 演示栈溢出 #include void...
分类:其他好文   时间:2016-04-10 14:50:05    阅读次数:112
栈溢出笔记1.2 覆盖EIP
1.1节中我们说到可以利用栈溢出来破坏栈中原有的内容,这一节中,我们就来看看如何争夺到返回地址(EIP),使得我们可以随意控制它的值,这样我们就可以控制程序。来看一个经典的程序:这个程序的get_print函数中定义了一个大小为11个字节的数组,正常情况下我们的输入应该最多为10个字符(还有一个\0结束符),而gets函数没有明确定义输入的大小,因此,我们可以输入超过10个字符,从而造成栈溢出。如下...
分类:其他好文   时间:2016-04-10 14:49:08    阅读次数:159
内核分析-第五周
预备知识 内核态 用户态 为什么要划分系统级别? 如何区分内核和用户态? cs:eip 寄存器上下文 上下文切换 系统调用号 中断向量 调度时机 系统调用过程中一定发生中断, 在系统调用执行过程中可能有进程的切换.系统调用分类进程控制load execute end, abort create process (for example, fork on Unix-like systems, or N...
分类:其他好文   时间:2016-03-28 00:14:43    阅读次数:383
Linux内核分析实验四----
一、用户态、内核态 权限分级——为了系统本身更稳定,使系统不宜崩溃。(并不是所有程序员缩写的代码都很健壮!!) x86 CPU四种不同的执行级别:0(内核态)—3(用户态) 区分方法:CS:EIP(CPU的每条指令都是通过这里执行)(代码段选择寄存器:偏移量寄存器) CS寄存器的最低两位表明了代码级
分类:系统相关   时间:2016-03-19 11:20:06    阅读次数:195
Linux内核设计第四周——扒开系统调用三层皮
1、用户态和内核态 内核态:在高级别的状态下,代码可以执行特权指令,访问任意的物理地址; 用户态:在相应的低级别执行状态下,代码的掌控范围会受到限制。 区分: CPU每条指令的读取都是通过cs:eip,cs寄存器最低两位表明了当前代码的特权级。内核态下可访问所有地址空间。 2、Intel x86 C
分类:系统相关   时间:2016-03-18 23:26:19    阅读次数:275
160条   上一页 1 ... 8 9 10 11 12 ... 16 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!