<Crack> 手脱UPX

2016-4-19(YPP)

<此篇为脱壳入门教程>

UPX简介

http://baike.baidu.com/link?url=h_P3r-L0icvZoSNO-HUwY4RE3ptQ9r6d8H1ZFsgGlCOqyv6Q68N95BHIvNY2nCs0IUdYt0xy6LYQ_pDF-Gg6Na

              ①UPX加壳压缩

              ②寻找OEP

              ③Dump内存映像

              ④重建IAT

              ⑤正常运行

首先对Win98记事本程序 NOTEPAD.exe用UPX进行压缩处理

PE检测信息如下:

Upx版本:3.91

压缩前:(10CC为程序真正的入口点,Original Entry Point简称OEP)

压缩前后文件大小的变化(压缩后文件名更改为notepad_upx.exe)

 

GUI版本的UPX压缩方法如下:

 

-------------------------------------------------------------------------------------------------------------

得到压缩后的记事本程序:notepad_upx.exe

下面开始“手脱”

Ollydbg载入notepad_upx.exe,停在0040E8C0 PUSHAD

0040E8C0并非程序真正的入口点,寻找真正OEP的关键是寻找“跳转”,单步往下进行,若遇到大范围跳转则很可能遇到OEP

简化实例,跳转OEP的指令位于“末端”(往下翻页)如图:

004010CC就是未进行压缩的文件的入口点,F4至此,F7步入即可来到OEP

 

已成功寻找OEP,下步重建Dump映像

抓取的前提是:内存映像已还原

到达OEP时,即可抓取

打开Lord PE-Options

默认勾选:Full dump:paste header from disk  <PE头的信息直接从磁盘文件获得>

 

选中notepad_upx.exe该进程,右键执行: dump full命令

 

 

 

内存抓取的文件为 dumped.exe 此时还不能运行!下一步是重建IAT”

还是在OEP处,打开ImportREC选中该进程。

填入OEPRVA10CC,自动检测IAT的偏移和大小

单击“获得输入表”,显示所有DLL有效!

单击“fix dump”修复转存文件

选择dumped.exe,修复完成后自动更名为dumped_.exe

 

 

此时脱壳已完毕,重建IAT后,能够正常运行!

END.

时间: 2024-10-02 22:31:01

<Crack> 手脱UPX的相关文章

手脱UPX(堆栈平衡原理)

一开始看到pushad F8执行直到只有esp,eip,变化 在esp处follow in dump 下硬件访问断点 F9运行在硬件断点停下 到达一个长跳转(跳到OEP) 完成 ------------------------------------------------------ 原理回头补充

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

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简介: FSG壳是一款压缩壳.我们这里使用9种方式来进行脱壳 工具:ExeinfoPE或PEid.OD.LordPE.ImportREConstructor 脱壳文件:05.手脱PECompact2.X壳.rar 1 单步 我们发现有两处call会跑飞,那么我们需要在跑飞处进入,然后在跟即可. 第一个跑飞的cal

手动脱UPX 壳实战--吾爱破解培训第一课作业1

作者:Fly2015 Windows平台的加壳软件还是比较多的,因此有很多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳,首先第一步就是 查壳,然后才是 脱壳. 推荐比较好的查壳软件: PE Detective .Exeinfo PE.DIE工具. 需要脱壳的程序是吾爱破解论坛的windows逆向破解培训http://www.52pojie.cn/thread-378612-1-1.html第一课的作业题1. 1.对该程序(吾爱破解培训第一课作业一.exe)进

手脱PECompact v2.xx

1.使用Detect It Easy进行查壳: 2.使用x32dbg打开该带壳程序,在选项->选项->异常中添加区间设置0~FFFFFFFF全忽略: 3.我们F9运行到程序入口处,会看到mov eax,puah eax,push dword,我们单步跳转到push dword的位置,堆栈窗口压入了一行地址,右键,内存窗口跟随该地址: 4.在该内存处下dword的硬件访问断点,然后F9运行,至图中位置后,向下查找(可能会由于异常或断点,一次无法跳转至此,可以F9,直到此位置): 5.找到pop

简单脱壳教程笔记(9) --- 手脱TELock0.98b1壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 TELock 操作 1.最后一次异常法 1.选项--->调试设置--->异常------取消所有异常. 在OD插件--StrongOD--Options--Skip Some Exceptions选项取消,重启OD再试试. 2.然后将程序重新载入 3.按shift+f9 ,发现17次shift+f9 就会让程序

简单脱壳教程笔记(10) --- 手脱EXE32PACK壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EXE32PACK 1.ESP定律 1.将程序加载到OD中,发现有大段的加密指令,我们先单步走,到达关键指令,push ebp 2.单步运行到cmp eax,eax处,在寄存器窗口的esp处,右键在数据窗口跟随,并在数据窗口中进行设置硬件断点. 3.按运行,并删除硬件断点 4.然后单步,就会到达OEP 2.下断:

手脱 PEtite 2.x [Level 1/9] -&gt; Ian Luck 笔记

这款壳不是什么强壳,属于普通的压缩壳 首先OD载入 程序中断在此处 我们单步步跟踪 来到这里,esp定律下硬件访问word断点! 程序在0042d03d处弹栈,之后F8单步跟 一个大JMP之后程序来到这里 鼠标右键,从模块中删除分析,就来到了程序的OEP,看着样子应该是VB程序

简单脱壳教程笔记(8)---手脱EZIP壳

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 EZIP壳 : 当载入到OD中的时候,会发现有一串jmp watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 操

手脱MoleBox(2.3.3-2.6.4)

1.查壳 2.找到OEP 对第二个Call使用ESP定律,再跳转后的位置进入第一个Call,这里就是OEP了,在这里直接dump的话会失败,那是因为MoleBox壳对IAT进行二次跳转,我们先在OEP位置设置软件断点: 3.手动修复IAT 我们数据窗口跟随到这个加载系统函数的地址就是IAT: 我们看到有部分IAT被隐藏到了其它位置,我们使用硬件写入断点,从新运行此程序,找到写入位置: 我们通过硬件写入断点找到IAT被写入的位置,我们从这单步向下,找到使IAT变化的语句,在语句上下硬件执行断点,删