恶意软件反检测技术简介(上)
2008-10-14 13:28:12 来源:WEB开发网3.入口点迷惑技术
入口点迷惑技术(EPO)是一种将附带的恶意代码放到一个文件的特定的部分的方法。恶意软件不会一上来就执行恶意代码,相反,它能查找对ExitProcess()API函数的调用,然后用一个跳至恶意代码的转移指令来覆盖这些调用。用这种方法,代码将在可执行文件的出口处,而非入口处运行。它还可以寻找一个特定的代码序列,然后用恶意代码本身或跳至恶意代码的转移指令来覆盖之。所以,入口点迷惑技术后,能够使病毒在将代码拷贝至新的位置之后、实际覆盖它之前运行恶意代码。
四、跟模拟器比智力
为了智取模拟器,一些恶意软件使用基于时间的触发器,或者其它的条件转移,或者使用不同的解密技术(如果它是采用加密的恶意软件的话)。基于时间的触发器可以只有在下午3点或指定的日期运行恶意代码。恶意软件也可以检测某些条件是否成立,如查看自身是否正在被调试或仿真,如果条件成立,则执行良性代码。
解密技术也可以将解密循环分布到代码的各处,或者使用多轮解密技术。多轮解密技术已经被W32/Harrier、W32/Coke和W32/Zelly用过了,其中第一个解密器解密第二个解密器,第二个解密器又解密第三个解密器,以此类推。为了靠小聪明玩弄模拟器,恶意软件也可以仅仅解密所需的代码块。
RDA.Fighter病毒使用蛮力解密技术,这意味着,该病毒不会储存解密密钥,所以它必须尝试所有可能的解密密钥,以便解密本身。这是非常有用的,因为如果反病毒公司使用了不同的蛮力解密方法的话,对病毒解密是非常困难的,它需要大量的仿真指令。还有一种可能,就是只要模拟器正在运行,病毒就不对自身进行解密。下面是病毒RDA Fighter用于解密的代码。
setup:
xor ebx,ebx
iterate:
mov esi,[ebp + hostOffset]
mov edi,esi
mov ecx,[ebp + host_size]
inc ebx
decrypt:
lodsb
xor al,bl
stosb
loop decrypt
check:
mov esi,[ebp + hostOffset]
push esi
mov ecx,[ebp + host_size]
push ecx
mov eax,[ebp + __ADDR_CheckSum] ; whatever this happens to be
call eax
test eax,eax
jnz iterate
mov esi,[ebp + hostOffset]
jmp esi
更多精彩
赞助商链接