I have to program a simple polymorphic engine. I use linux (32-bit) and i can code in assembly and c. I don't know how to start.
Can you give me a schema for constructing such an engine? My idea is to make a program that:
Is that right? Does it reflect the operation of such an engine?
The basic schema is quite different from that you've described. Usually only the virus body is encrypted, an not the whole code section. Consider a simple virus that either extends code section, either creates a new one for its body. Now, to make it polymorphic, you have to add encryption and make the decryptor code to be non-constant, eg:
1) insert nops randomly (nop
, add reg, 0
, push reg; pop reg
, etc)
2) change the program flow with ( jmp next
, clc; jc next
, etc)
3) use instructions with the same arithmetic effect (add eax, 3
-> add eax, 9; sub eax, 6
)
Polymorphic means that it could have a fixed number of encodings, so the simpliest way to create one is to break the decryptor code in several blocks, and provide several encoding with the same length for each.
EDIT: Yes, it's a part of the virus body. In order to use it you put all these "bricks" in the virus body, and when another file is infected, you create a random version of the decriptor for it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With