清单 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 寄存器就像一个反调试功能吗?如果我错了,请纠正我,但我认为运行调试器不会改变堆栈布局......
提前致谢