UPX 脱壳初见

1.壳是什么?

加壳一般是指保护程序资源的方法. 
脱壳一般是指除掉程序的保护,用来修改程序资源. 
病毒加壳技术与脱壳杀毒方法 : 
壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。

壳,在我们的印象中,它的作用就是保护,例如龟壳,这是传统意义上的壳,通常被用来保护自己;今天我们讨论的壳是程序的壳,它的功能和一般意义上的壳有相同的地方,它们都是保护作用,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。 从功能上抽象,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。 软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。

2.怎么加壳?

作者编好软件后,编译成exe可执行文件。 1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。 2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩, 3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。实现上述功能,这些软件称为加壳软件。

3.常见的加壳软件?

软件加壳是作者写完软件后,为了保护自己的代码或维护软件产权等利益所常用到的手段。目前有很多加壳工具,当然有盾,自然就有矛,只要我们收集全常用脱壳工具,那就不怕他加壳了。软件脱壳有手动脱和自动脱壳之分,下面我们先介绍自动脱壳,因为手动脱壳需要运用汇编语言,要跟踪断点等,不适合初学者,但我们在后边将稍作介绍。

加壳一般属于软件加密,现在越来越多的软件经过压缩处理,给汉化带来许多不便,软件汉化爱好者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处是简单,缺点是版本更新了就没用了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们常常会碰到的加壳方式及简单的脱壳措施,供大家参考: 脱壳的基本原则就是单步跟踪,只能往前,不能往后。脱壳的一般流程是:查壳->寻找OEP->Dump->修复 找OEP的一般思路如下: 先看壳是加密壳还是压缩壳,压缩壳相对来说容易些,一般是没有异常,找到对应的popad后就能到入口,跳到入口的方式一般为。 我们知道文件被一些压缩加壳软件加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方法都不相同。

4.常用脱壳工具

1、文件分析工具(侦测壳的类型):Fi,GetTyp,peid,pe-scan,

2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid

3、dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE

4、PE文件编辑工具PEditor,ProcDump32,LordPE

5、重建Import Table工具:ImportREC,ReVirgin

6、ASProtect脱壳专用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只对ASPr V1.1有效),loader,peid

(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了

(2)ASProtect+aspack:次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但最新版现在暂时没有办法。

(3)Upx: 可以用UPX本身来脱壳,但要注意版本是否一致,用-D 参数

(4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦

(5)Dbpe: 国内比较好的加密软件,新版本暂时不能脱,但可以破解

(6)NeoLite: 可以用自己来脱壳

(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来脱壳

(8)Pecompat: 用SOFTICE配合PEDUMP32来脱壳,但不要专业知识

(9)Petite: 有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识

(10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳

我们通常都会使用Procdump32这个通用脱壳软件,它是一个强大的脱壳软件,他可以解开绝大部分的加密外壳,还有脚本功能可以使用脚本轻松解开特定外壳的加密文件。另外很多时候我们要用到exe可执行文件编辑软件ultraedit。我们可以下载它的汉化注册版本,它的注册机可从网上搜到。ultraedit打开一个中文软件,若加壳,许多汉字不能被认出 ultraedit打开一个中文软件,若未加壳或已经脱壳,许多汉字能被认出 ultraedit可用来检验壳是否脱掉,以后它的用处还很多,请熟练掌握例如,可用它的替换功能替换作者的姓名为你的姓名注意字节必须相等,两个汉字替两个,三个替三个,不足处在ultraedit编辑器左边用00补。

5.常见的壳脱法

(一)aspack壳 脱壳可用unaspack或caspr 1.unaspack ,使用方法类似lanuage,傻瓜式软件,运行后选取待脱壳的软件即可. 缺点:只能脱aspack早些时候版本的壳,不能脱高版本的壳 2.caspr第一种:待脱壳的软件(如aa.exe)和caspr.exe位于同一目录下,执行windows起始菜单的运行,键入 caspr aa.exe脱壳后的文件为aa.ex_,删掉原来的aa.exe,将aa.ex_改名为aa.exe即可。使用方法类似fi 优点:可以脱aspack任何版本的壳,脱壳能力极强缺点:Dos界面。第二种:将aa.exe的图标拖到caspr.exe的图标上***若已侦测出是aspack壳,用unaspack脱壳出错,说明是aspack高版本的壳,用caspr脱即可。

(二)upx壳 脱壳可用upx待脱壳的软件(如aa.exe)和upx.exe位于同一目录下,执行windows起始菜单的运行,键入upx -d aa.exe。

(三)PEcompact壳 脱壳用unpecompact 使用方法类似lanuage傻瓜式软件,运行后选取待脱壳的软件即可。

(四)procdump 万能脱壳但不精,一般不要用 使用方法:运行后,先指定壳的名称,再选定欲脱壳软件,确定即可脱壳后的文件大于原文件由于脱壳软件很成熟,手动脱壳一般用不到。

原文地址:https://www.cnblogs.com/pw1scn/p/9313953.html

时间: 2024-08-30 16:28:59

UPX 脱壳初见的相关文章

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

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

pwnable flag

http://www.pwnable.kr/ 逆向题目,upx脱壳: 找到flag:

AliCTF2014题目解析之<reverse-300>

reverse-300 工具:IDA pro.WinDbg.UPX.Resource Hacker 先运行程序看效果点击按钮直接崩溃,同时由于程序放到32位的xp虚拟机中不能运行,应该是64位程序.根据提示程序本身就是有问题的,所以直接上IDA pro,发现貌似是用UPX加了壳的: 使用UPX脱壳看看成功!运行Ch3_d.exe看看效果这效果...直接不能运行了,脱壳之前还可以弹出窗口来着!再从新脱一次壳,还这样,好吧,it's a trap! 用windbg分析一下崩溃的原因:把windbg注

XX下载器分析过程

1. 脱壳 查看下载器的PE信息,发现其使用了UPX加壳,所以首先对下载器进行UPX 脱壳. 2. 抓包分析 通过Wireshark查看下载器发送的HTTP请求,发现如下信息: 2.1 下载器发送的第一个请求为: http://down.72zx.com/xml/web1.xml?winver=6.1 其中如下信息与接下来的HTTP请求相关: <web> <id>1</id> <name>XX软件园</name> <tag>ONLIN

SCTF-2014小计

周末和小伙伴们参加了XCTF成都信息学院站的SCTF比赛.原本参赛的目标是看看题目学习为主,周末还安排了很多其他的事情,没想到能做出这么多题目. 这次的题目很有意思,以前的题目都是pwn最难,然后是reverse,web题有难有易.没想到这次溢出我们队伍很快就全部搞定了.而我在re300上花费了大量的时间,最后只找到关键函数和一串用于比较的MD5值,算法根据提示要"三阶魔方还原".这题目太坑了算法实际上已经非常复杂了,程序还进行了性能的最大优化,win32的程序,都用寄存器传参数.无疑

Rada分析实践

一.实验选题背景: 北京大学网络攻防技术与实践课程--Rada分析(北京大学计算机研究所信安中心) 二.实验操作 0X01 确认文件完整性 或是在linux 下使用md5sum工具进行计算哈希值. 确认文件格式 使用命令:strings RaDa.exe | less 查看程序可以打印的字符串 发现呈现乱码,推测程序加壳. 0X02 目标运行测试 注意:目标程序运行测试请勿在工作环境下进行 运行filemon.wireshark.regmon监控工具,然后再执行样本rada.exe,使用上述三个

攻防世界--simple-unpack

下载链接:https://adworld.xctf.org.cn/media/task/attachments/b7cf4629544f4e759d690100c3f96caa 1.准备 获取到信息: 64位文件 upx加壳 2.第一种方法 2.1 IDA以二进制形式打开文件 shift+F12 查找字符串 2.2 get flag! 因此直接就得到了flag{Upx_1s_n0t_a_d3liv3r_c0mp4ny} 3.第二种方法 3.1 upx脱壳 3.2 IDA打开脱壳后的文件 找到ma

BUUCTF--新年快乐

测试文件:https://buuoj.cn/files/bbf9f68a97fd551edec384914d4f3fbe/93c43c5c-3d4d-4d17-a9a1-4ffb65ebb2fb.zip?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoxNjZ9.XW-hEg.7BMROvySmduBj7-fRbmY3eU6kKE 1.准备 获得信息 32位文件 加壳文件 1.upx脱壳 2.IDA打开文件 3.get f

攻防世界(XCTF)逆向部分write up(一)

晚上做几个简单的ctf逆向睡的更好 logmein elf文件 ida看看main函数伪代码 void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { size_t v3; // rsi int i; // [rsp+3Ch] [rbp-54h] char s[36]; // [rsp+40h] [rbp-50h] int v6; // [rsp+64h] [rbp-2Ch] __int64 v7; // [rsp+6