ESP定律

当程序载入OD之后 

004AC460 > $  60            pushad;程序停在这里 F8 指向pushad指令

pushad是把寄存器中数据入栈 栈中数据如下:

0012FFA4   7C930208   |EDI  <-- ESP指向栈顶

0012FFA8   FFFFFFFF |ESI

0012FFAC   0012FFF0 |EBP

0012FFB0   0012FFC4 |ESP

0012FFB4   7FFDE000 |EBX

0012FFB8   7C92E4F4   |EDX  

0012FFBC   0012FFB0 |ECX

0012FFC0   00000000 |EAX

此时ESP指向栈顶 地址为0012FFA4 ,脱壳从这里开始-.-~

来到数据段即内存地址0012FFA4 在这下断点 硬件访问 - word

然后F9  -- 这里就能找到OEP

那么我的理解就是 汇编指令之前前先把各个寄存器保存起来,然后执行壳的操作比如解压,

等壳的工作完成之后需要恢复各个寄存器的值 ,我们在栈中已经设置了一个断点,所以当程序访问栈中数据(popad,我们在0012FFA4 下断点是EDI的值,当程序恢复EDI寄存器)时就被我们给断了下来 ,当然并不是断在pop EDI指令上,而是断在popad的下一条指令,因为popad是一步到位恢复寄存器的。

然后在寻找OEP,一般是jmp大跳 然后就看到了期待已久的55机器码了 dump-.-~

可以理解为壳的执行是一个子程序 ,子程序运行前都要保持寄存器,完事之后恢复寄存器,返回主程序

我们在恢复寄存器的地方下断点,然后   ...

以上就是我对ESP定律的理解,虽然还未成功脱的一壳,但是各大网站论坛都在谈论ESP之威武,据说可脱所以压缩壳,所以大概找了些文章看看,ESP定律就是利用堆栈平衡找到程序结束继而找到OEP

以上为个人理解,为了不误人子弟,有错误大神请指出 

 

popad:相当于

push EAX

push ECX

push EDX

push EBX

push ESP

push EBP

push ESI

push EDI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

socket通信简介

前言 我们深谙信息交流的价值&#xff0c;那网络中进程之间如何通信&#xff0c;如我们每天打开浏览器浏览网页时&#xff0c;浏览器的进程怎么与web服务器通信的&#xff1f;当你用QQ聊天时&#xff0c;QQ进程怎么与服务器或你好友所在的QQ进程通信&#xff1f;这些都得靠sock…

SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

需求描述 在我们的生产环境中&#xff0c;大部分情况下需要有自己的运维体制&#xff0c;包括自己健康状态的检测等。如果发生异常&#xff0c;需要提前预警的&#xff0c;通知形式一般为发邮件告知。 邮件作为一种非常便利的预警实现方式&#xff0c;在及时性和易用性方面也有…

So easy Webservice 1.Socket建设web服务

socket 是用来进行网络通讯的&#xff0c;简单来说&#xff0c;远程机器和本地机器各建一个socket&#xff0c;然后通过该socket进行连接通讯 socket简单模型图&#xff1a; socket的原理图&#xff1a; 代码实现&#xff1a; 1.创建socket服务端&#xff1a;用于处理客户端发送…

去除字符串中重复字符

题目 设计算法并写出代码移除字符串中重复的字符&#xff0c;不能使用额外的缓存空间。注意&#xff1a; 可以使用额外的一个或两个变量&#xff0c;但不允许额外再开一个数组拷贝。 进一步地&#xff0c; 为你的程序写测试用例。 解答 这道题目其实是要你就地(in place)将字符…

MyEclipse 6.5安装maven插件

MyEclipse 6.5安装maven插件 原文 http://www.blogjava.net/caojianhua/archive/2013/11/05/406013.html 一、卸载原有maven插件 MyEclipse 6.5集成了Maven插件&#xff0c;不过有不少bug&#xff0c;用习惯了m2eclipse&#xff0c;不想在这上面浪费时间。要安装m2eclipse&…

两列右侧自适应布局--(来自网易)

<div class"g-bd1 f-cb"><div class"g-sd1"><p>左侧定宽</p></div><div class"g-mn1"><div class"g-mn1c"><p>右侧自适应</p></div></div> </div> /* 两列右…

Gradle 笔记

网上有一篇文章说的很明白&#xff0c;图文来教你在eclipse下用gradle 来打包Androidhttp://blog.csdn.net/x605940745/article/details/41242687 步骤为&#xff1a; 1. Elipse里面导出&#xff0c;Generate Gradle build files 2. 找到生成的gradle文件夹&#xff0c;里面有…

sql server 自定义函数的使用

sql server 自定义函数的使用自定义函数 用户定义自定义函数像内置函数一样返回标量值&#xff0c;也可以将结果集用表格变量返回 用户自定义函数的类型: 标量函数:返回一个标量值 表格值函数{内联表格值函数、多表格值函数}:返回行集&#xff08;即返回多个值&#xff09; 1、…

怎么设置才能让外网ip可以访问mysql数据库[转]

转自&#xff1a; http://www.hongyanliren.com/89.html 使用mysql中&#xff0c;很多人都会遇到这样的问题&#xff1a;在vps服务器或者云服务器上安装了mysql后&#xff0c;使用其他工具在外网ip之下根本就连接不上mysql&#xff0c;到底是什么原因导致外网ip无法访问mysql数…

Java 自带MD5 校验文件

http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛&#xff0c;关于Java文件监控一文&#xff0c;帖子地址在&#xff1a;http://www.iteye.com/topic/1127281 评论的朋友很多&#xff0c;下载代码的朋友很不少&#xff0c;感谢在论坛上看我帖子的朋友&#xff0c;…

决策树资料汇总

2012年8月26日决策树&#xff08;Decision tree&#xff09;决策树是以实例为基础的归纳学习算法。它从一组无次序、无规则的元组中推理出决策树表示形式的分类规则。它采用自顶向下的递归方式&#xff0c;在决策树的内部结点进行属性值的比较&#xff0c;并根据不同的属性值从…

metasploitable2渗透测试

一、系统弱密码登录 1、在kali上执行命令行telnet 192.168.26.129 2、Login和password都输入msfadmin 3、登录成功&#xff0c;进入系统 4、测试如下&#xff1a; 二、MySQL弱密码登录&#xff1a; 1、在kali上执行mysql –h 192.168.26.129 –u root 2、登录成功&#…

Portainer.io:让容器管理变得更加直观

在现代软件开发和部署中&#xff0c;容器化技术已经变得越来越流行。Docker 是其中一种领先的容器化平台&#xff0c;而 Portainer.io 则是一个优秀的管理工具&#xff0c;使得 Docker 的使用变得更加简单和可视化。本文将介绍 Portainer.io 的基本功能和如何在 Docker 上安装和…

仓库信息查询练习

use cangku create table cangkubiao ( cno varchar(50) primary key not null, city varchar(50)not null, mianji int not null ) insert into cangkubiao values(wh1,北京,370) insert into cangkubiao values(wh2,上海,500) insert into cangkubiao values(wh3,广州,200) …

python开发的一些tips

1. Notepad编写python脚本 1&#xff09;新建文件&#xff0c;编写代码 2&#xff09;点击菜单栏&#xff0c;“语言”—>“P”—>“Python”&#xff0c;设置脚本为Python语言的高亮&#xff08;这样保存文本的时候&#xff0c;Notepad也可以自动识别文件类型为.py&…

metasploitable3渗透测试

1、攻击windows服务器漏洞 用nmap对网段进行扫描nmap -sP 192.168.123 在进行IP扫描 发现Windows服务器漏洞 步骤: msfconsole---进入渗透模块

以前写的一个下载小说的工具

因为当时发现只有一个站点有。但是时时联网的要求太让人不爽。就写了一个给全下下来了。 用到了: 1. 正则表达式&#xff0c;分析章节和内容&#xff1b; 2. 线程池下载&#xff0c;并且对下载中的相关超时做了一些处理&#xff1b; 3. 文件生成与写入&#xff0c;注意格式问题…

数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

我们来看一个灰度图像&#xff0c;让表示灰度出现的次数&#xff0c;这样图像中灰度为 的像素的出现概率是是图像中全部的灰度数&#xff0c; 是图像中全部的像素数, 实际上是图像的直方图&#xff0c;归一化到 。把 作为相应于 的累计概率函数, 定义为&#xff1a;是图像的…

Windows2008的安装

点击下一步 点击安装 选择第三个&#xff0c;点击下一步 点击下一步 点自定义安装 我在这里分两个盘并格式化 接下来就是等待安装完成即可

Ubuntu下在Apache中运行Keystone

最近一次从Github上更新Keystone的代码后,发现原来bin/keystone-all和bin/keystone-manage都不见了,取而代之的是keystone/cmd/目录下的all.py和manage.py两个python脚本.虽然在测试的virtualenv环境下仍然可以执行原来的命令,但是想试着在Apache中运行Keystone,毕竟这已经是社…