【发布时间】:2015-10-06 09:33:30
【问题描述】:
作为一项任务,我得到了一些汇编代码,这些代码从用户那里获取输入(加密密钥),然后是一串字母数字字符,然后通过简单地打乱 EAX 中字节的顺序来对其进行加密, EDX 和 EXD 寄存器(据我了解。)
我的任务是获取加密字符串并将其解密回原始字符串输入。
我首先尝试反转加密过程的步骤(即将 rol 更改为 ror 等),但很快意识到这不起作用。
如果有人能花时间解释如何制作解密过程/代码,我将不胜感激。
__asm {
encryptX: push ecx
xchg eax, ecx
neg al
ror al, 1
xor al, byte ptr[ecx]
push edx
mov edx, eax
xchg eax, ecx
rol byte ptr[eax], 3
xor dl, byte ptr[eax]
rol dl, 2
mov eax, edx
pop edx
pop ecx
ret
}
【问题讨论】:
标签: assembly encryption x86 reverse-engineering