Flag: Tornado! Hurricane!

OpenRCE Article Comments: The Viral Darwinism of W32.Evol

Article Abstract The W32.Evol virus was discovered around July 2000. Its name is derived from a string found in the virus, but much more can be implied from the name. Up until then, most of the viruses were using Polymorphic engines in order to hide themselves from Anti-Virus scanners. The engine would encrypt the virus with a different key on every generation, and would generate a small, variant decryptor that would consist of different operations but remain functionally equivalent. This technique was beginning to wear out as AV scanners would trace virus-decryption until it was decrypted in memory, visible and clear.

This article explores the features and functionality of the metamorphic engine of the Evol virus, the first virus to utilize a 'true' metamorphic engine according to Symantec.

Full Article ...    Printer Friendly ...

Article Comments
nico Posted: Wednesday, February 21 2007 15:35.17 CST
Good work, interesting disassembly :)

eraser Posted: Monday, March 12 2007 11:13.59 CDT
Many thanks for your valuable contribution.

MazeGen Posted: Friday, March 30 2007 02:57.38 CDT
Very interesting article, thanks.

There's one error in chapter "II. Alternative Instruction Encoding": EB imm8 is JMP short (there's nothing like CALL short).

eraser Posted: Wednesday, April 4 2007 13:33.07 CDT
You are right MazeGen.


EB cb JMP cb  Jump short (signed byte relative to next instruction)
E9 cv JMP cv  Jump near (vword offset relative to next instruction)

Orr Posted: Friday, April 6 2007 16:02.00 CDT
The mistake is in the paper and not in the engine. You can refer to the label 'isJccShort' in the disassembly.

adityaks Posted: Wednesday, June 20 2007 06:07.58 CDT
nice one man

nEINEI Posted: Friday, November 27 2009 04:04.08 CST
good work~~


Add New Comment
Comment:










There are 31,320 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
hi!
Jul/01
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit