Сміттєвий код
Сміттєві команди, сміттєвий код (Superfluous Code) — машинні команди, результат виконання яких в програмі не використовується. Додавання сміттєвого коду є однією з головних технік обфускації машиного коду. Головним чином використовується крипторами та іншим зловмисним ПЗ для обходу сигнатурного детекту і пакерами для ускладення зворотньої розробки (аналіз алгоритму роботи програми).
Приклад (fasm x86)
Декриптор без сміттєвих команд:
mov esi, start_of_virus_body mov ebx, decryption_key mov ecx, virus_size decryption_loop: xor [esi], ebx inc esi loop decryption_loop
Декриптор, що містить сміттєві команди:
mov esi, start_of_virus_body nop ; сміття mov ebx, decryption_key add edx, 105 ; сміття mov ecx, virus_size xchg ebp, edx ; сміття jc decryption_loop ; сміття decryption_loop: xor [esi], ebx push ebx ; сміття pop eax ; сміття inc esi dec eax ; сміття loop decryption_loop jcxz next ; сміття next:
Див. також
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.