Polymorphic code

Deel dit
" Terug naar Woordenlijst Index

Polymorphic code is a type of computer[1] code that constantly changes or mutates, posing a unique challenge for anti-virus software and intrusion detection systems. This code uses complex algorithms to alter itself, making it difficult for security[2] software to spot. Often employed by malicious programmers, they rewrite decryption engines to shield the encrypted code. Techniques like emulation in sandbox environments can potentially defeat this obfuscation. Metamorphic code, a related concept, adds another layer of complexity by executing without identifiable constant code blocks. An introductory example of polymorphic code is encryption via the XOR operator, where the encrypted code serves as a mutable payload. The decryption process involves changing encrypted code within defined markers. Other relevant concepts include alphanumeric shellcode, shellcode, obfuscated code, and oligomorphic code.

Terms definitions
1. computer. A computer is a sophisticated device that manipulates data or information according to a set of instructions, known as programs. By design, computers can perform a wide range of tasks, from simple arithmetic calculations to complex data processing and analysis. They have evolved over the years, starting from primitive counting tools like abacus to modern digital machines. The heart of a computer is its central processing unit (CPU), which includes an arithmetic logic unit (ALU) for performing mathematical operations and registers for storing data. Computers also have memory units, like ROM and RAM, for storing information. Other components include input/output (I/O) devices that allow interaction with the machine and integrated circuits that enhance the computer's functionality. Key historical innovations, like the invention of the first programmable computer by Charles Babbage and the development of the first automatic electronic digital computer, the Atanasoff-Berry Computer (ABC), have greatly contributed to their evolution. Today, computers power the Internet, linking billions of users worldwide and have become an essential tool in almost every industry.
2. security. Security, as a term, originates from the Latin 'securus,' meaning free from worry. It is a concept that refers to the state of being protected from potential harm or threats. This protection can apply to a wide range of referents, including individuals, groups, institutions, or even ecosystems. Security is closely linked with the environment of the referent and can be influenced by different factors that can make it either beneficial or hostile. Various methods can be employed to ensure security, including protective and warning systems, diplomacy, and policy implementation. The effectiveness of these security measures can vary, and perceptions of security can differ widely. Important security concepts include access control, assurance, authorization, cipher, and countermeasures. The United Nations also plays a significant role in global security, focusing on areas like soil health and food security.
Polymorphic code (Wikipedia)

In computing, polymorphic code is code that uses a polymorphic engine to mutate while keeping the original algorithm intact - that is, the code changes itself every time it runs, but the function of the code (its semantics) stays the same. For example, the simple math expressions 3+1 and 6-2 both achieve the same result, yet run with different machine code in a CPU. This technique is sometimes used by computer viruses, shellcodes and computer worms to hide their presence.

Encryption is the most common method to hide code. With encryption, the main body of the code (also called its payload) is encrypted and will appear meaningless. For the code to function as before, a decryption function is added to the code. When the code is executed, this function reads the payload and decrypts it before executing it in turn.

Encryption alone is not polymorphism. To gain polymorphic behavior, the encryptor/decryptor pair is mutated with each copy of the code. This allows different versions of some code which all function the same.

" Terug naar Woordenlijst Index
nl_BENL
Scroll naar boven