示例程序演示

样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的:

拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - upx.exe进行加upx壳:

压缩之后查壳:

脱upx壳

od调试小技巧:

F8 步过/向下的循环直接跳过

F7 步入

F4 遇到向上的循环,光标选中循环体的下一句汇编指令(非调用指令,即call指令),然后按f4,可直接跳到此处;若下一句汇编指令是call指令,则选call后边的非call指令,然后按f4,可直接跳到此处。

注意:如果碰到nop的指令,F4定到下一条语句,否则程序会跑飞

F8 跳转到地址 0x004e53c2 :

F7 步入到 0x004ec969 :

我们将程序notepad - upx.exe调试到地址 0x004e53c2 。打开LordPE,选中该应用进程,右键->修正镜像大小,右键->完整转存:

此时转储下来的dumped.exe程序无法运行,因为导入表还没有进行修复:

接下来我们进行导入表的修复。

使用ImpREC进行对导入表的修复:

OEP框输入 000e53c2(此处纠正为 000ec969。更新于2018.11.29) 点击“自动搜索IAT”,此时RVA字段会自动调整为 00131ffc 。再点击“获取导入表”,最后点击“修复转储”。

修正后的可执行文件dumped_.exe :

dumped_.exe就是可以正常运行的程序了,我们最后再来查壳看看该程序,此时没有壳:

我们再贴一张加壳的程序信息:

Preference

脱壳笔记-手工脱UPX压缩壳注:主要参考和实现的就是这个链接。本帖子的目的就是自己走一遍手动脱upx壳过程,争取好的理解。

以下还有两篇比较详细的关于壳的帖子:

脱壳入门初级教学

【干货分享】恶意样本分析手册——常用方法篇

手动脱UPX压缩壳的更多相关文章

  1. 脱壳第三讲,UPX压缩壳,以及补充壳知识

    脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 壳可以简单理解为就是在自己的PE文件中包含了代码.而有不影响我 ...

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

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

  3. <逆向学习第二天>如何手动脱UPX、Aspack壳

    UPS.AsPack压缩壳介绍: UPX .AsPack是一款先进的可执行程序文件压缩器.压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网络上传下载的时间和其它分布以及存储费用. ...

  4. 手动脱UPX 壳实战

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

  5. UPX和WinUpack压缩壳的使用和脱法 - 脱壳篇06

    UPX和WinUpack压缩壳的使用和脱法 - 脱壳篇06 让编程改变世界 Change the world by program 今天小甲鱼给大家介绍两款压缩壳:UPX和WinUpack. UPX是 ...

  6. UPX压缩

    什么是UPX UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网 ...

  7. 深入底层逆向分析TDC‘s keygenme(手脱压缩壳)

    系统 : Windows xp 程序 : TDC‘s keygenme 程序下载地址 :http://pan.baidu.com/s/1gdWyt6z 要求 : 脱壳 & 注册机编写 使用工具 ...

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

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

  9. 简单脱壳教程笔记(2)---手脱UPX壳(1)

    本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...

随机推荐

  1. 本地git远程github

    操作环境: windows系统 本地已安装git 步骤 1.右键进入git bash 2.进入本地仓库,如果有,则跳到步骤3.如果没有,则找到要作为仓库的文件夹,例如e://git//reposito ...

  2. Installing Jenkins as a Windows service

    Install Jenkins as a Windows service NOTE: if you installed Jenkins using the windows installer, you ...

  3. Netty实践与NIO原理

    一.阻塞IO与非阻塞IO Linux网络IO模型(5种) (1)阻塞IO模型 所有文件操作都是阻塞的,以套接字接口为例,在进程空间中调用recvfrom,系统调用直到数据包到达且被复制到应用进程缓冲区 ...

  4. 101. Symmetric对称 Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  5. Android Studio 快捷键、Debug的使用

    https://blog.csdn.net/q908555281/article/details/49331371 1.快捷键      个人习惯常用快捷键      在Eclipse中常用的快捷键 ...

  6. JAVA JDBC 增删改查简单例子

    1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...

  7. Shiro学习笔记 三(认证授权)

    第一种首先基于角色的权限控制 1.由于不断的创建SecurityFactory工程等步骤重复多次,所以应该将这些步骤封装成一个工具类 还是首先看一下目录结构 主要用到文件 首先贴一下工具类的方法 pa ...

  8. facebook ads api

    api测试 https://developers.facebook.com/tools/explorer/517735271920003?method=GET&path=act_1107316 ...

  9. js作用域题目

    window.number = 4var obj = { 'number': 4, 'tbl': (function(){ this.number *= 2; console.log(this.num ...

  10. python爬虫训练——爬poj题目

    首先要解决的就是不同的题目在不同的页上,也就是要实现翻页功能,自动获取所要爬取的地址,通过分析可以得出不同的页面也就是volume=后面的数字不同 所以我们可以用re模块来替换即可: new_url ...