一、实验截图二、汇编代码分析:cpu首先执行main函数里的pushl %ebp和movl %esp %ebp。如下图:esp减去4就是向上移动4位到1,如下图:把1赋值给esp,如下图:call f即为eip转到f执行,先push eip,再将f的地址传给eip。.........太晚了,先略,以...
分类:
其他好文 时间:
2015-03-09 00:20:29
阅读次数:
124
先验知识静态变量存储在静态存储区,局部变量存储在动态存储区(栈),代码存放在代码区寄存器,EBP指向栈底,ESP指向栈顶,EIP指向正在执行指令的下一条指令,三个寄存器中保存的都是地址,32位系统,地址为4个字节即dword所有写在函数定义里面的语句都编译成指令(驱动CPU)实验代码12345678...
分类:
其他好文 时间:
2015-03-05 18:45:11
阅读次数:
132
本课主要对计算机的运行原理和汇编语言进行了简单的介绍。冯若依曼体系结构即存储程序计算机,也就是将程序写在内存中,由CPU通过总线从内存中读取一条条程序,根据程序的内容执行具体的步骤。如图所示CPU在读取指令时,通过寄存器IP来指向下一条指令(如果是32位系统,则为EIP)CPU的寄存器分为通用寄存器...
分类:
其他好文 时间:
2015-03-04 22:25:56
阅读次数:
178
CALL是什么?
CALL是汇编中的一个指令,CPU执行这条指令会执行2个动作
一:压入EIP入栈 二:跳转到后面的地址. 跟RETN指令配合就实现了汇编中子程序的作用,通常我们常说的写CALL就是 调用游戏中已经存在的功能子程序.
比如说
viod myadd (int a, int b)
{
int c=a+b;
}
这是一个简单的子程序,当我们用程序语言调用那...
分类:
其他好文 时间:
2015-02-05 16:24:33
阅读次数:
338
缓存区溢出是由于当被被溢出程序/系统调用类似于read()、sprintf()\strcpy()等函数时向程序的内存空间中写入字符串,一般程序会将其放入堆或栈数据结构中 。若其对写入数据大小没有严格限制,则可能引起数据覆盖函数调用时压栈的esp栈顶指针及eip返回值,通过精心设计的写入数据,可以控制...
分类:
其他好文 时间:
2015-02-04 14:17:10
阅读次数:
132
http://kingj.iteye.com/blog/1555017http://www.cnblogs.com/rain-lei/p/3622057.html当调用(call)一个函数时,主调函数将声明中的参数表以逆序压栈,然后将当前的代码执行指针(eip)压栈,跳转到被调函数的入口点。 进入被...
分类:
其他好文 时间:
2015-01-30 22:34:09
阅读次数:
219
客户端IP:192.168.1.11服务端IP:192.168.1.12目的:检查eip用户的java进程是否存在客户端配置脚本名:check_pid.sh脚本如下:#!/bin/bashsi=`ps-ef|grepjava|grepeip|wc-l`if[$si-eq1];thenecho"statusok"exit0elseecho"Theproisdown,plaesecheck!"exit1fi放在/home/monitor/n..
分类:
移动开发 时间:
2015-01-15 01:54:01
阅读次数:
198
客户端IP:192.168.1.11服务端IP:192.168.1.12目的:检查eip用户的java进程是否存在客户端配置脚本名:check_pid.sh脚本如下:#!/bin/bashsi=`ps-ef|grepjava|grepeip|wc-l`if[$si-eq1];thenecho"statusok"exit0elseecho"Theproisdown,plaesecheck!"exit1fi放在/home/monitor/n..
分类:
移动开发 时间:
2015-01-15 01:53:04
阅读次数:
178
由于程序控制的EIP最终为0c0c0c0c,如果不修改一下的话,跟踪调试的时候,调试器是不会停下来的,那么很简单,直接把0c0c0c0c改为FFFFFFFF即可,这样调试器会发现程序在执行非法内存地址的指令,就会停下来。停下来后,你可以去检查栈中的蛛丝马迹。根据函数调用的原理,我们可以知道覆盖EIP...
分类:
其他好文 时间:
2014-12-15 18:39:41
阅读次数:
156
CALC : 判断表达式 WATCH : 添加监视表达式 AT : 在指定地址进行反汇编 FOLLOW : 跟随命令 ORIG : 反汇编于 EIP DUMP 在指定地址进行转存 DA : 转存为反汇编代码 DB : 使用十六进制字节格式转存 DC : 使用 ASCII 格式转存 DD : 转存在堆...
分类:
其他好文 时间:
2014-11-29 13:12:55
阅读次数:
213