5AC0EFFC |> /8B45 08 /mov eax,dword ptr ss:[ebp+8]
5AC0EFFF |. |8D0C03 |lea ecx,dword ptr ds:[ebx+eax]
5AC0F002 |. |33D2 |xor edx,edx
5AC0F004 |. |6A 14 |push 14
5AC0F006 |. |5F |pop edi
5AC0F007 |. |8BC3 |mov eax,ebx
5AC0F009 |. |F7F7 |div edi
5AC0F00B |. |8AC3 |mov al,bl
5AC0F00D |. |FEC8 |dec al
5AC0F00F |. |F6EB |imul bl
5AC0F011 |. |6A 3B |push 3B
5AC0F013 |. |324415 EC |xor al,byte ptr ss:[ebp+edx-14]
5AC0F017 |. |33D2 |xor edx,edx
5AC0F019 |. |3286 A032C45A |xor al,byte ptr ds:[esi+5AC432A0]
5AC0F01F |. |3001 |xor byte ptr ds:[ecx],al
5AC0F021 |. |8D46 05 |lea eax,dword ptr ds:[esi+5]
5AC0F024 |. |59 |pop ecx
5AC0F025 |. |F7F1 |div ecx
5AC0F027 |. |43 |inc ebx
5AC0F028 |. |3B5D 0C |cmp ebx,dword ptr ss:[ebp+C]
5AC0F02B |. |8BF2 |mov esi,edx
5AC0F02D |.^\72 CD \jb short sapshlib.5AC0EFFC
这是一段加密的代码,好像是xor加密(也可能弄错了),明文地址是保存在ECX里面的,循环,每取一个明文字符,就加密,然后把加密的单个字符覆盖到该明文字符。最后把加密后的字符,按16进制输出。
比如说,87654321,
加密前是: 38 37 36 35 34 33 32 31
加密后是: 40 B6 25 1D D4 F4 32 0F
但是具体过程我有点看不懂,哪位高手给详细分析下,谢谢了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)