SP (Stack Pointer) Уловка для защиты от отладки - x86

Листинг 7.1. Декриптор каскадного вируса

lea si, Start ; position to decrypt (dynamically set)

mov     sp, 0682    ; length of encrypted body (1666 bytes)

Decrypt:
xor     [si],si ; decryption key/counter 1
xor     [si],sp ; decryption key/counter 2
inc     si  ; increment one counter
dec     sp  ; decrement the other
jnz     Decrypt ; loop until all bytes are decrypted

Start:  ; Encrypted/Decrypted Virus Body 

Обратите внимание, что этот дешифратор имеет функции защиты от ошибок, потому что регистр SP (указатель стека) используется в качестве одного из ключей дешифрования.

Может кто-нибудь объяснить, почему используется Регистр SP действует как функция защиты от отладки? Поправьте меня, если я ошибаюсь, но я не думаю, что запуск отладчика меняет структуру стека ...

Заранее спасибо

5
задан user452188 20 September 2010 в 11:14
поделиться