我最近读了Ange的一条推文,内容涉及调用选项-d(解压缩)时欺骗UPX的技术。打包的可执行文件,可以通过upx -d(如果适用于Linux和Windows)解压缩。

评论

当然,@ blabb的答案可以防止upx -d,但是您应该知道,诸如RL Depacker之类的通用拆包程序仍然可以解压缩此类文件。

如果需要,可以使用Denuvo / VMProtect / enigma保护器/任何这种性质的东西来保护UPX输出,没有人可以解压缩它。

#1 楼

UPX不会检查拆包存根的完整性,而只是盲目地从存储的信息中还原数据,而不是从实际执行中恢复数据。修改它并实际上做一些额外的事情(防调试,补丁,解密,跳转到真实的入口点...),当使用'upx -d'时这些东西会丢失。在恶意软件中并不罕见。

评论


如果我做对了,它只需要修改打包的可执行文件的校验和……或者我是否误解了?

–恐怖
2013年12月30日13:47

@perror你明白了吗?

– Tiago
16-09-27在12:08

我似乎是对的(在我测试时)。因此,修改可执行文件的校验和不会阻止执行它,但是会使解压缩更加困难(因为在应用解压缩之前,您需要绕过此校验和验证)。

–恐怖
16-09-27在13:22

#2 楼

愚弄upx -d可以像一个字节补丁一样简单,这里是一个小样本。

打包MS-Windows标准calc.exe,将其编辑为一个字节,结果是upx -d不可解压缩的可执行文件(这不是exe的corrupting ,该exe将运行并可以手动解压缩)。仅使用-d开关打开包装不起作用。



创建一个新文件夹foolupx

foolupx:\>md foolupx



calc.exe复制到新创建的文件夹:

foolupx:\>copy c:\WINDOWS\system32\calc.exe foolupx\upxedcalc.exe
    1 file(s) copied.



打包重命名的calc.exe

foolupx:\>upx .\foolupx\upxedcalc.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2011
UPX 3.08w       Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 12th 2011

    File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     114688 ->     56832   49.55%    win32/pe     upxedcalc.exe

Packed 1 file.



创建一个打包的calc.exe的副本以进行hexediting并比较文件。区别在于,名为UPX0的PE标头节中的1个字节链接到BPX0:使用-d开关解压缩两个文件。

foolupx:\>copy .\foolupx\upxedcalc.exe .\foolupx\modupxedcalc.exe
    1 file(s) copied.

foolupx:\>fc .\foolupx\upxedcalc.exe .\foolupx\modupxedcalc.exe
Comparing files .\FOOLUPX\upxedcalc.exe and .\FOOLUPX\MODUPXEDCALC.EXE
000001E8: 55 42




解压缩两个文件。一个将被打开包装,另一个将不被打开包装:

foolupx:\>upx -d .\foolupx\modupxedcalc.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2011
UPX 3.08w       Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 12th 2011

    File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    upx: .\foolupx\modupxedcalc.exe: CantUnpackException: file is modified/hacked/protected; take care!!!

Unpacked 0 files.

foolupx:\>upx -d .\foolupx\upxedcalc.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2011
UPX 3.08w       Markus Oberhumer, Laszlo Molnar & John Reiser   Dec 12th 2011

      File size         Ratio      Format      Name
 --------------------   ------   -----------   -----------
 114688 <-     56832   49.55%    win32/pe     upxedcalc.exe

Unpacked 1 file.

foolupx:\>