Assembly 汇编程序中的加密和解密
我一直在编写一些汇编代码,它对某些东西进行加密,然后要求它再次解密 这是代码,我希望能得到一些关于如何在汇编中编写解密代码的帮助Assembly 汇编程序中的加密和解密,assembly,x86,reverse-engineering,Assembly,X86,Reverse Engineering,我一直在编写一些汇编代码,它对某些东西进行加密,然后要求它再次解密 这是代码,我希望能得到一些关于如何在汇编中编写解密代码的帮助 push ebx push edx push ecx movzx edx, byte ptr[eax] and edx, 0x43 cmp edx, 0x00 j
push ebx
push edx
push ecx
movzx edx, byte ptr[eax]
and edx, 0x43
cmp edx, 0x00
jnz x16
mov edx, 0x07
inc dl //x16 start here
mov dword ptr[eax], edx
pop ebx
dec ebx //y16 start here
dec edx
jnz y16
not bl
pop edx
mov eax, ebx
pop ebx
ret
首先像我一样简化代码,然后看看它能给你带来什么
push ebx
push edx
movzx edx, byte ptr[eax]
and dl, 0x43
jnz x16
mov dl, 0x07
x16:
inc dl
mov dword ptr[eax], edx ;Is this correct?
mov ebx, ecx
sub ebx, edx
not bl
mov eax, ebx
pop edx
pop ebx
ret
这对于所有输入来说都是不可逆的。和edx,0x43显然只保留3位。此外,y16循环也没有意义,当输入是字节时写出dword也是可疑的。我得说这是坏代码。