手动脱UPX压缩壳
示例程序演示
样例程序选择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压缩壳的更多相关文章
- 脱壳第三讲,UPX压缩壳,以及补充壳知识
脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 壳可以简单理解为就是在自己的PE文件中包含了代码.而有不影响我 ...
- 手动脱Mole Box壳实战总结
作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,这些都是广告,能够直接无视了.前面的博客手动脱Mole Box V2.6.5壳实战中已经给 ...
- <逆向学习第二天>如何手动脱UPX、Aspack壳
UPS.AsPack压缩壳介绍: UPX .AsPack是一款先进的可执行程序文件压缩器.压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网络上传下载的时间和其它分布以及存储费用. ...
- 手动脱UPX 壳实战
作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...
- UPX和WinUpack压缩壳的使用和脱法 - 脱壳篇06
UPX和WinUpack压缩壳的使用和脱法 - 脱壳篇06 让编程改变世界 Change the world by program 今天小甲鱼给大家介绍两款压缩壳:UPX和WinUpack. UPX是 ...
- UPX压缩
什么是UPX UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间.网 ...
- 深入底层逆向分析TDC‘s keygenme(手脱压缩壳)
系统 : Windows xp 程序 : TDC‘s keygenme 程序下载地址 :http://pan.baidu.com/s/1gdWyt6z 要求 : 脱壳 & 注册机编写 使用工具 ...
- 【个人笔记】ximo早期发的脱壳教程——手脱UPX壳
[个人笔记]ximo早期发的脱壳教程--手脱UPX壳 壳分为两种:压缩壳和加密壳,UPX是一种很简单的压缩壳. 手脱UPX壳: 工具:ExeinfoPE.OD 对象:rmvbfix 方法1:单 ...
- 简单脱壳教程笔记(2)---手脱UPX壳(1)
本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...
随机推荐
- linux shell的for循环语法是怎样的?
答:如下: ;i<100;i++)) do echo "i=${i}" done
- P4568 [JLOI2011]飞行路线
思路 套路题 建出k+1分层图,从上一层走到下一层代表坐了一次免费航线,跑最短路即可 注意可能有情况不需要耗完所有k次机会,所以应从每层的终点向下一层终点连一条边权为0的边 代码 #include & ...
- 教你用ActiveReports分析京东双十一数据的价值
随着双十一购物盛会落下帷幕,各大电商平台纷纷公布出自己今年的成绩.与其它同行不同的是,京东除了公布1598亿的线上下单金额,还公布了线上线下融合的战果. 面对京东线上.线下海量数据源,我们该如何进行整 ...
- SAP 财务模块 FI-TV 差旅管理
SAP 财务模块 FI-TV 差旅管理 Travel Management差旅管理事务码 描述PRT3 Trip Costs: Maintain Postings ...
- appium长按按钮
public static AndroidDriver driver; /长按操作:waitAction的参数单位是ms/ public static void longClick(String id ...
- SMTP发送邮件
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- tornado tcp 框架 demo
server #!/usr/bin/env python import logging from tornado.ioloop import IOLoop from tornado import ge ...
- Selenium IDE使用
基于版本Selenium IDE 3.2.2(注:该工具不常用,可以使用定位元素是否存在) Selenium IDE可以录制也很方便,当然录下来的经常回放不成功,需要自己调试就是了.它是只针对Web页 ...
- JavaSE习题 第七章 常用实用类
问答题 1.怎样实例化一个Calendar对象? Calendar ca=Calendar.getInstance(); 2.Calendar对象调用set(1949,9,1)设置的年月日分别是多少? ...
- 使用ajax判断登录用户名
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx. ...