Content deleted Content added
No edit summary |
Noone~enwiki (talk | contribs) added some information, erased some other.. |
||
Line 1:
In computer science (or more often, in computer underground terms) '''polymorphic code''' is code that mutates while keeping the original [[algorithm]] intact.
This is
Most [[anti virus-software]] and [[intrusion detection system]]s tries to find malicious code by searching through computer files and data packets sent over a [[computer network]]. If the security software finds any pattern that corresponds to an allready known virus or worm, it reacts and erases the program.
It cannot, however, find the program if it constantly mutates so that it never looks the same. This is the very idea of polymorphic code.
Most often, a virus/worm that makes any attempt to hide its presence will do that by encrypting itself. However, before being executed at a remote computer, it obviously first needs to decrypt itself. In order to decrypt the virus or worm, some part of the code has to be deliverd unencrypted. Thus, while not being able to detect the actual virus or worm, the anti virus-software/intrusion detection system will still be able to detect the virus decryption engine!
However, if the decryption engine is rewritten each time before it is transfered into a new computer (in the case of a worm/shellcode) or computer file (in the case of a virus), it becomes nearly impossible for any security software to detect the presence of the malicious program.
== How it works ==
Line 52 ⟶ 58:
some_random_number
The code inside "Encrypted" ("lots of encrypted code!!!") could then search the code between Decryption_Code and [[CryptoKey]] and remove all the code that alters the variable C. Before the next time the encryption engine is used, it could input new unnecessary codes that alters C, or ever exchange the code in the algorithm into new code that does the same thing.
see also: [[self-modifying code]], [[alphanumeric code]], [[shellcode]], [[software cracking]], [[security cracking]]
|