【发布时间】:2011-04-14 15:11:51
【问题描述】:
清单 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 寄存器会起到反调试功能的作用吗?如果我错了,请纠正我,但我认为运行调试器不会改变堆栈布局...
提前致谢
【问题讨论】:
-
听起来很像家庭作业...
标签: assembly x86 reverse-engineering cracking software-protection