UPS、AsPack压缩壳介绍:

   UPX 、AsPack是一款先进的可执行程序文件压缩器。压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过压缩过的程序和程序库完全没有功能损失,和压缩之前一样可正常地运行。对于支持的大多数格式没有运行时间或内存的不利后果。

  
    压缩的原理是什么呢?

压缩就好像把 可执行文件中的 123456 用字母%A代替,789ABC用字母%C代替,这样程序代码的体积不久变小了很多。(要是可以这样压缩,这不都只有三分之一了,好机智)。

  实际上现在网络有很多UPX、Aspack脱壳器,但是入门学习一定要从头学习手动脱壳,学习原理,我会将我近期学习到的4种方法总结于本文。

    首先使用PEiD或者EXEInfoPE查壳,这里我使用PEiD。

  

  可见此程序加的是UPX壳,接下来我们手动将它脱掉。

    1、单步跟踪法

     此方法是将向上跳转设置断点让它不能实现,向下跳转不执行动作让它实现。

  

    将程序拖入OP,可以看到Pushad是这个程序的入口点。接下来按F8(单步步过)或者点击此按钮即可。

    单步跟踪法是将向上跳转设置断点,所以我们就用F8逐一的找向上跳转。

    红色椭圆框住的就是向上跳转,每当遇见的时候通常我们都在下一句设置断点,所以我们可以直接在下一句(即红色矩形框框住部分)按F4,逐步向下寻找。

    这个跳转因为下一句是一个“CALL”所以我们在CALL下面的一句设置断点。这里注意一下popad。这个是“出站口”,注意到前面pushad是“入站口”,有入站口就会有出站口即popad。再看popad下面的语句,98E1EFFF,0047738C,这个跨度比较大,典型的Delphi程序,一般再单步步进一次就可以进入到程序的真正程序段。

  

  接下来我们进行脱壳,可以直接用OD脱壳插件脱壳,右键用OllyDump脱壳调试进程。

  可以用方式1,也可以用方式2,都可以进行脱壳。

  

   2、ESP大法

    ESP大法相比于单步跟踪法来说简便,利用寄存器ESP的值来进行脱壳。

     首先来看程序入口点,关键语句Pushad。

     ESP大法是在关键语句的下一句如果ESP颜色突变进行操作,我们来看一下下一语句的ESP。

     这里我们看到寄存器里只有ESP是红色的,那我们就可以操作了。右键数据窗口中跟随。

     在数据窗口中进行如下操作,word Dword都可以。

     然后我们F9运行,来到了我们刚才熟悉的界面,单步步进,来到了主程序程序段,脱壳即可。

     3、内存2次镜像法

      

      点击m进入内存界面,接下来我们找在内存中的本程序段的.rsrc,F2设置断点,运行。

      

      所谓2次镜像法就是要进行2次内存操作,接下来我们再点m进入内存信息界面,找到地址00401000,F2设置断点,运行。又来到了我们熟悉的语句popad,设置断点,单步步进,脱壳。

      4、一步直达法

      此方法适用于UPX,Aspack壳,前面说过pushad为入口点,那么它必定有一个出口点popad,所以我们只需要Ctrl+f查找popad即可。

<逆向学习第二天>如何手动脱UPX、Aspack壳的更多相关文章

  1. 手动脱UPX压缩壳

    示例程序演示 样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的: 拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - ...

  2. <逆向学习第三天>手动脱FSG壳,修复IAT。

    其实对于简单的壳来说,脱壳常用的方法也无非是那几种,但是每种有每种的好处,具体使用那种方法视情况而定,我今天学习的这个壳很简单,但是重点在于修复IAT. 一.查壳: FSG 2.0的壳. 二.脱壳: ...

  3. 手动脱Mole Box壳实战总结

    作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,这些都是广告,能够直接无视了.前面的博客手动脱Mole Box V2.6.5壳实战中已经给 ...

  4. 手动脱UPX 壳实战

    作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...

  5. Anroid逆向学习从编写so到静动态调试分析arm的一次总结

    Anroid逆向学习从编写so到静动态调试分析arm的一次总结 一.前言 最近跟着教我兄弟学逆向这篇教程学习Android逆向,在第七课后作业反复折腾了好几天,正好在折腾的时候对前面的学习总结一波,动 ...

  6. 【个人笔记】ximo早期发的脱壳教程——手脱UPX壳

    [个人笔记]ximo早期发的脱壳教程--手脱UPX壳   壳分为两种:压缩壳和加密壳,UPX是一种很简单的压缩壳.   手脱UPX壳: 工具:ExeinfoPE.OD 对象:rmvbfix 方法1:单 ...

  7. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  8. 二、Android学习第二天——初识Activity(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...

  9. 逆向课程第二讲,寻找main入口点

    逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编译生成的Debug版本以及Release版本) 1.识别VC6. ...

随机推荐

  1. SQL Server2008宝典 全书代码

    -- ============================================= -- Create database template -- ==================== ...

  2. matlab矩阵

    矩阵的转置用',比如: a = [1,2,3]; b = a'; %b 转置成一个列向量,可以用于矩阵 linspace是Matlab中的一个指令,用于产生指定范围内的指定数量点数,相邻数据跨度相同, ...

  3. SharePoint Config database Log file too big – reduce it!

    SharePoint Config database logs are one thing to keep an eye on since they do have a tendency to gro ...

  4. 【Leetcode】【Easy】Maximum Depth of Binary Tree

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  5. 1.appium介绍

    appium介绍 官方网站 1.特点 appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用. “移动原生应用”是指那些用iOS或者 An ...

  6. ubuntu 可以加速播放的播放器SMPlayer 16.4安装

    直接贴命令 sudo apt-add-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer smp ...

  7. Android(java)学习笔记31:泛型高级之通配符

    1. 泛型高级之通配符: package cn.itcast_07; import java.util.ArrayList; import java.util.Collection; /* * 泛型高 ...

  8. oc 无中生有添加协议(使已有函数符合协议)

    class_addProtocol([UIButton class],@protocol(UIButtonExport)); @protocol UIButtonExport <JSExport ...

  9. 2018.10.3 MianShiBaoDian JavaWeb后端部分

    MSBD 四.JavaWeb后端部分 1.Tomcat的优化经验 去掉对web.xml的监控,吧jsp提前编写成servlet,由于物理内存的情况,加大Tomcat使用的jvm的内存 2.HTTP请求 ...

  10. ASP.NET Web API 自定义MediaType实现jsonp跨域调用

    代码来自<ASP.NET Web API 2 框架揭秘>一书. 直接上代码: /// <summary> /// 自定义jsonp MediaType /// </sum ...