UPX 是一款先进的可执行程序文件压缩器。压缩过的
可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序和
程序库完全没有功能损失,和压缩之前一样可正常地运行。对于支持的大多数格式没有运行时间或内存的不利后果。UPX 支持许多不同的可执行文件格式 :包含 Windows 95/98/ME/NT/2000/XP/CE 程序和
动态链接库、DOS 程序、Linux
可执行文件和核心。
1、让正规文件被保护起来,不容易被修改和破解。
2、使
文件压缩变小。
3、保护
杀毒软件安装程序,使之不受病毒侵害。
4、木马,病毒的保护外壳,使之难以为攻破。 仅仅看一个壳upx路径 是不能确定什么的。要仔细看看他相对应的文件,如果是杀毒或者是自己已知的文件那就无伤大雅,要是其他疑似,就要认真对待了。
有些软件的安装程序是
加壳安装的,属正常现象。 建议查杀一下恶意程序、病毒。
/*************************************************************************************************************/
1.目标程序是一个crackme
查壳
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
3.脱壳 用OD 载入
00412990 > $ 60 pushad
00412991 . BE 00E04000 mov esi,Crackme.0040E000
00412996 . 8DBE 0030FFFF lea edi,ds:[esi+FFFF3000]
0041299C . 57 push edi
0041299D . EB 0B jmp short Crackme.004129AA
很典型的upx的入口
第一种方法 我们用ESP 定律
4.f8单步走
堆栈平衡原理 我们继续单步走
在F8 单步走 这里有个循环
00412B13 - E9 F456FFFF jmp Crackme.0040820C
5.注意这个跳 是 跳到0040820C 当前是00412B13
是一个大跳。
跳过去之后就是oep了
继续F8
0040820C 55 push ebp
0040820D 8BEC mov ebp,esp
0040820F 83C4 F0 add esp,-0x10
00408212 B8 C4814000 mov eax,Crackme.004081C4
6.这个就是OEP 了 我们来脱壳
程序 可以运行 没问题
再查下壳
Borland Delphi 6.0 - 7.0 写的
第二种方法 经验法
OD 载入
7.往下翻 如果确定是Upx的壳
找到这个关键跳 大跳 断点
断下来之后 F8 也到OEP了
也可以用LoadPe
后面的操作就是一样的了
查壳
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
3.脱壳 用OD 载入
00412990 > $ 60 pushad
00412991 . BE 00E04000 mov esi,Crackme.0040E000
00412996 . 8DBE 0030FFFF lea edi,ds:[esi+FFFF3000]
0041299C . 57 push edi
0041299D . EB 0B jmp short Crackme.004129AA
很典型的upx的入口
第一种方法 我们用ESP 定律
4.f8单步走
堆栈平衡原理 我们继续单步走
在F8 单步走 这里有个循环
00412B13 - E9 F456FFFF jmp Crackme.0040820C
5.注意这个跳 是 跳到0040820C 当前是00412B13
是一个大跳。
跳过去之后就是oep了
继续F8
0040820C 55 push ebp
0040820D 8BEC mov ebp,esp
0040820F 83C4 F0 add esp,-0x10
00408212 B8 C4814000 mov eax,Crackme.004081C4
6.这个就是OEP 了 我们来脱壳
程序 可以运行 没问题
再查下壳
Borland Delphi 6.0 - 7.0 写的
第二种方法 经验法
OD 载入
7.往下翻 如果确定是Upx的壳
找到这个关键跳 大跳 断点
断下来之后 F8 也到OEP了
也可以用LoadPe
后面的操作就是一样的了