脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律

一丶什么是ESP定律

首先我们要明白什么是壳.壳的作用就是加密PE的.

而ESP定律就是壳在加密之前,肯定会保存所有寄存器环境,而出来的时候,则会恢复所有寄存器的环境.

这个就成为ESP定律.(当然我个人理解.可能有更好的理解,请下方评论,我会更改)

pushad的时候,肯定所有寄存器入栈.

二丶利用工具脱掉ASPACK2.12的壳

首先,我们找一个带壳的工具,利用PEID查壳.查看是什么壳.

OD附加进程.

可以看出,一开始就已经pushad (保存所有寄存器环境)了,那么只需要找到popad的位置即可.

思路:

因为pushad的时候,所有寄存器传参,当popad的时候,肯定会修改寄存器的值

所以在栈中下硬件访问或者硬件写入断点.

先F8走一步,看栈

看得出,所有寄存器已经入栈了.所以我们在数据窗口中,输入栈地址.(保存寄存器的栈地址,随便哪个都可以)然后下硬件访问断点.

我是定位到栈顶的位置,12ffa8的位置,当然也可以是下边的.

下硬件访问或者硬件写入断点.

然后F9运行起来.发现会断下来.

这个地方则是出来的地方,那么ASPack的壳有一个特征,就是出来之后会跳转,然后有两个ret

因为程序是32位程序,所以我们要放到32位的虚拟机里面去脱壳.

然后我们继续F8跟随.一直跟随到一个JMP位置,这个地方就是OEP了.

然后我们使用OD的插件去脱壳, 这个插件是修复PE的导入表的.可以直接利用.

然后点击脱壳即可,如果没有这个工具,你需要自己手动解析PE,然后重建导入表才可以.

默认选择方式1

脱壳之后,查看是否还有加密.

没有pushad保存寄存器环境了,已经成功脱壳.

课堂代码资料: 链接:http://pan.baidu.com/s/1skKYA5n 密码:2di6

作者:IBinary
出处:http://www.cnblogs.com/iBinary/
版权所有,欢迎保留原文链接进行转载:)

注意,一定是在32位系统下脱壳.

脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律的更多相关文章

  1. 脱壳第二讲,手动脱壳PECompact 2.x

    脱壳第二讲,手动脱壳PECompact 2.x PS: 此博客涉及到PE格式.所以观看此博客你要熟悉PE格式 首先,逆向inc2l这个工具,汇编中可能会用的 inc头文件转换为lib的工具 但是他有壳 ...

  2. 手工脱壳之FSG压缩壳-IAT表修复

    目录 一.工具及壳介绍 二.脱壳 2.1.单步跟踪脱壳 2.2.IAT修复 三.程序脱壳后运行截图 四.个人总结 五.附件 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.L ...

  3. 手工脱壳之AsPack压缩脱壳-随机基址

    一.工具及壳介绍二.脱壳1.ESP定律脱壳2.单步跟踪脱壳3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查看待脱壳 ...

  4. MFC原理第一讲.MFC的本质.以及手工编写MFC的程序

    MFC原理第一讲.MFC的本质.以及手工编写MFC的程序 PS: 这个博客属于复习知识.从头开始讲解. 在写这篇博客之前.已经写了3篇MFC的本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC ...

  5. 脱壳脚本_手脱壳ASProtect 2.1x SKE -> Alexey Solodovnikov

    脱壳ASProtect 2.1x SKE -> Alexey Solodovnikov 用脚本.截图 1:查壳 2:od载入 3:用脚本然后打开脚本文件Aspr2.XX_unpacker_v1. ...

  6. 菜鸟脱壳之脱壳的基础知识(四)——利用ESP定律来寻找OEP

    .上节说的是单步跟踪法,这节讲的是利用堆栈平衡(ESP定律)来进行脱壳!想必大家都听说过ESP定律这个大名吧!ESP定律运用的就是堆栈平衡原理!一般的加壳软件在执行时,首先要初始化,保存环境(保存各个 ...

  7. 简单脱壳教程笔记(7)---手脱PECompact2.X壳

    本笔记是针对ximo早期发的脱壳基础视频教程.整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简单介绍: F ...

  8. CS193P - 2016年秋 第一讲 课程简介

    Stanford 的 CS193P 课程可能是最好的 ios 入门开发视频了.iOS 更新很快,这个课程的最新内容也通常是一年以内发布的. 最新的课程发布于2016年春季.目前可以通过 iTunes ...

  9. POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格

    第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工 ...

随机推荐

  1. #黑客攻防实战详解#[Chapter 1]

    1.1 ①配置模拟入侵环境 ②配置网络拓扑   

  2. JAVA课程设计个人博客 学生成绩管理 201521123001 张陈东芳

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现学生信息的添加功能.学生成绩的录入 ...

  3. [01] Java语言的基本认识

    0.写在前面的话 我们都知道在计算机的底层,它是识别二进制的,也就是说,计算机只能认识0和1.这主要是因为电路的逻辑只有两种状态,所以只需要0和1两个数字就可以表示低电平和高电平.而计算机是由数不清的 ...

  4. 01快速入门-04-Map、Set和iterable(ES6)

    1.Map 我们知道,在JS中其实对象的方式就跟Java中的Map极为相似,即键值对的方式.JS中,key必须是字符串,实际上Number等值作为key也是合理的,所以为了解决这个问题,在最新的ES6 ...

  5. JSP页面格式化数字或时间 基于struts的

    jsp日期格式化 转自: http://blog.csdn.net/chj225500/article/details/7251552 在直接<s:textfield中也要日期格式化,平时使用日 ...

  6. mysql死锁+解决

    自己作死,navicat不恰当的操作导致了表死锁,操作如下: 给表新加字段:name 没有选择允许为空,但是有没有设置初始值,所以运行的结果就是数据库表里有了name不允许为空但是确实为空的记录: 然 ...

  7. Flex布局介绍

    Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性 任何一个容器都可以指定为 Flex 布局. .box{ display: -web ...

  8. OpenStack Pike超详细搭建文档 LinuxBridge版

    前言 搭建前必须看我 本文档搭建的是分布式P版openstack(1 controller + N compute + 1 cinder)的文档. openstack版本为Pike. 搭建的时候,请严 ...

  9. org.springframework.core.io包内的源码分析

    前些日子看<深入理解javaweb开发>时,看到第一章java的io流,发觉自己对io流真的不是很熟悉.然后看了下JDK1.7中io包的一点点代码,又看了org.springframewo ...

  10. QCW切割 --铁片

    1.QCW切割旋转轴限位部件  --刘锦峰协助        :铁片              功率85%   最大功率100  最小功率50  脉宽0.1ms  调整焦点-0.5左右