リスト 7.1 Cascade Virus の復号化プログラム
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 (スタック ポインター) レジスターが復号化キーの 1 つとして使用されるため、この復号化プログラムにはデバッグ防止機能があることに注意してください。
SPレジスタの使用がアンチデバッグ機能のように機能する理由を誰かが説明できますか? 私が間違っている場合は修正してください。ただし、デバッガーを実行してもスタック レイアウトが変更されるとは思いません...
前もって感謝します