UPX有哪些版本/修改?
它们有何不同?它们具有什么功能?
#1 楼
我将忽略UPX中有多种压缩算法,并且有多个版本的UPX。通常,当人们问到它是普通的UPX还是普通的UPX时,是因为恶意软件和其他软件喜欢采用UPX并对其进行少量修改,以使其无法与标准的UPX可执行文件一起解压缩,从而防病毒打开它会比较困难。在对抗逆向工程方面不是很有效。
#2 楼
首先,让我们看一下UPX结构。UPX结构
序言
CMP / JNZ for DLL参数检查
,设置寄存器
可选的NOP对齐方式
解压缩算法
NRV或LZMA
呼叫/跳转恢复
UPX转换相对调用并跳转为绝对调用,以改善压缩率。
导入
加载库,解析API
重置节标志
结束语
清洁堆栈
跳转到原始的EntryPoint
了解更多详细信息,这是UPX版本的PE的带注释IDA(免费版本)IDB。
修改后的UPX变体
简单的部分(例如序言/结尾)很容易修改,并且因此经常被修改:
基本多态性:用等价的指令代替
用跳转移动它们
复杂的部分,例如减压,调用恢复,导入加载通常保持不变,因此通常在它们之间插入自定义代码:
反调试
额外的xor循环(解压后)
标记,将在解压缩的代码中进一步检查该标记,以便文件知道它已解压缩。
伪造
由于序言并没有做太多,因此对于将其复制到EntryPoi非UPX打包的PE的nt,以欺骗标识符和伪造的UPX打包。
评论
对于PE文件,某些工具还依赖于默认节名称。
– 0xC0000022L♦
13年4月17日在4:44
#3 楼
我不确定这是否是您要的内容,但是UPX有多种压缩给定格式的方法。例如,ELF-可以直接解压缩到内存中
-可以解压缩到/ tmp并从那里执行
默认情况下,首选第一个选项,但是我不知道认为这不是强制性的。有关详细信息,请参见UPX手册。
评论
发现。你不会读书吗? ;)
– 0xC0000022L♦
13年3月23日在23:47
您能否提供有关其修改方式的任何示例/网站?这样的信息可能会进一步建立一个强有力的答案。 :)
– Lizz
13年4月6日在5:20
而且,如果将UPX的派生用作保护机制,则可以打赌它将产生假阳性,直到您脸色发青。 UPX已被大多数安全公司有效地归类为恶意软件工具,这是开源库和可执行工具的共同命运。
–达斯塔
13年4月14日在13:17