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. C#学习笔记13

    1.Task概述:Task是对操作系统线程的抽象,目的是使线程池能高效地管理线程的分配和回收,Task使用的底层线程属于一种共享资源,任务需要互相协作,并及时归还线程,以便用相同的共享资源(线程)满足 ...

  2. C++里创建 Trie字典树(中文词典)(三)(联想)

    萌新做词典第三篇,做得不好,还请指正,谢谢大佬! 今天把词典的联想做好了,也是比较low的,还改了之前的查询.遍历等代码.  Orz 一样地先放上运行结果: test1 ID : char : 件 w ...

  3. 基于forms组件和Ajax实现注册功能

    一.基于forms组件的注册页面设计 1.运用forms组件的校验字段功能实现用户注册 views.py:    (在钩子中代码解耦,将form放在cnblog/blog/Myforms.py中) f ...

  4. css3总结之居中

    居中在前端布局上很常见,也很常用,也是最基本的技巧.居中效果在方向控制上基本可以分解成水平居中,垂直居中和水平垂直居中. 针对调整的元素不同,具体的处理方式上有些差异.这里我们先不讲绝对定位下的居中, ...

  5. 可编辑DIV 光标位置 处理

    //场景: 要做一个网页即时通信,发送信息的文本编辑框 要求能发图片和表情,那么textarea就不能满足需求了,因为textarea内没有办法加入image // 采用方案是使用可编辑的DIV(也就 ...

  6. ASP.NET 中对大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  7. CKRule业务规则管理系统部署说明

    1.   程序包说明 软件是使用WinForm开发的,包含服务端和客户端,服务端部署在IIS上面,客户端可以在已经安装.Net4.0的windows上面运行. 1.1.  服务端程序包 CKBrmsS ...

  8. 【PIC单片机】Pic单片机基础知识

    本次学习采用PIC16F877A芯片及HJ-5G 开发板 一.IO口操作 1.1 设置I/O口方向:input or output TRISx 方向寄存器 (Transport and Receive ...

  9. 修改mysql编码方式

    第一种:     通过mysql命令行修改: 1)首先查看数据库字符编码,命令为: show variables like’collation_%’; show variables like’char ...

  10. window medio player 完美代码

    var arr = [               '<object width="240" height="240" align="basel ...