这段代码每次对8个字节加密,加密后生成8字节的密文,加密过程是反复从一个好象密钥表的数据中取数,然后或加或xor操作。各位看看是对称加密吗?解密算法是什么?谢谢
027411E0 mov eax,dwordptr[ecx] //密钥表中第一个数据
027411E2 push ebx
027411E3 push ebp
027411E4 push esi
027411E5 mov esi,dwordptr[esp+10]
027411E9 push edi
027411EA mov edx,dwordptr[esi] //要被加密的4字节数据
027411EC xor edx,eax //和密钥表中第一个数据xor
027411EE xor eax,eax
027411F0 mov dwordptr[esp+14],edx
027411F4 mov edi,edx
027411F6 mov al,byteptr[esp+16] //取edx中间2位
027411FA shr edi,18 //取edx高2位
027411FD mov eax,dwordptr[ecx+eax*4+448] //从密钥表中取数
02741204 mov ebx,dwordptr[ecx+edi*4+48]
02741208 add eax,ebx //取出的数字运算
0274120A xor ebx,ebx
0274120C mov bl,dh //再取edx中dh
0274120E mov edi,dwordptr[ecx+ebx*4+848] //取密钥
02741215 xor eax,edi //运算
02741217 mov edi,edx //再取edx中dl
02741219 and edi,0FF
0274121F mov ebx,dwordptr[ecx+edi*4+C48] //取密钥
02741226 mov edi,dwordptr[ecx+4]
02741229 add eax,ebx //运算
0274122B xor ebx,ebx
0274122D xor eax,edi //以下反复这样加密
0274122F mov edi,dwordptr[esp+18]
02741233 xor eax,dwordptr[edi]
02741235 mov dwordptr[esp+14],eax
02741239 mov ebp,eax
0274123B mov bl,byteptr[esp+16]
0274123F shr ebp,18
02741242 mov ebx,dwordptr[ecx+ebx*4+448]
02741249 add ebx,dwordptr[ecx+ebp*4+48]
0274124D mov ebp,ebx
0274124F xor ebx,ebx
02741251 mov bl,ah
02741253 xor ebp,dwordptr[ecx+ebx*4+848]
0274125A mov ebx,eax
0274125C and ebx,0FF
02741262 add ebp,dwordptr[ecx+ebx*4+C48]
02741269 mov ebx,dwordptr[ecx+8]
0274126C xor ebp,ebx
0274126E xor ebx,ebx
02741270 xor edx,ebp
02741272 mov dwordptr[esp+14],edx
02741276 mov bl,byteptr[esp+16]
0274127A shr edx,18
0274127D mov ebp,dwordptr[ecx+ebx*4+448]
02741284 mov ebx,dwordptr[ecx+edx*4+48]
02741288 mov edx,dwordptr[esp+14]
0274128C add ebp,ebx
0274128E xor ebx,ebx
02741290 mov bl,dh
02741292 xor ebp,dwordptr[ecx+ebx*4+848]
02741299 mov ebx,edx
0274129B and ebx,0FF
027412A1 add ebp,dwordptr[ecx+ebx*4+C48]
027412A8 mov ebx,dwordptr[ecx+C]
027412AB xor ebp,ebx
027412AD xor ebx,ebx
027412AF xor eax,ebp
027412B1 mov dwordptr[esp+14],eax
027412B5 mov ebp,eax
027412B7 mov bl,byteptr[esp+16]
027412BB shr ebp,18
027412BE mov ebx,dwordptr[ecx+ebx*4+448]
027412C5 add ebx,dwordptr[ecx+ebp*4+48]
027412C9 mov ebp,ebx
027412CB xor ebx,ebx
027412CD mov bl,ah
027412CF xor ebp,dwordptr[ecx+ebx*4+848]
027412D6 mov ebx,eax
027412D8 and ebx,0FF
027412DE add ebp,dwordptr[ecx+ebx*4+C48]
027412E5 mov ebx,dwordptr[ecx+10]
027412E8 xor ebp,ebx
027412EA xor edx,ebp
027412EC xor ebx,ebx
027412EE mov dwordptr[esp+14],edx
027412F2 mov bl,byteptr[esp+16]
027412F6 shr edx,18
027412F9 mov ebp,dwordptr[ecx+ebx*4+448]
02741300 mov ebx,dwordptr[ecx+edx*4+48]
02741304 mov edx,dwordptr[esp+14]
02741308 add ebp,ebx
0274130A xor ebx,ebx
0274130C mov bl,dh
0274130E xor ebp,dwordptr[ecx+ebx*4+848]
02741315 mov ebx,edx
02741317 and ebx,0FF
0274131D add ebp,dwordptr[ecx+ebx*4+C48]
02741324 mov ebx,dwordptr[ecx+14]
02741327 xor ebp,ebx
02741329 xor ebx,ebx
0274132B xor eax,ebp
0274132D mov dwordptr[esp+14],eax
02741331 mov ebp,eax
02741333 mov bl,byteptr[esp+16]
02741337 shr ebp,18
0274133A mov ebx,dwordptr[ecx+ebx*4+448]
02741341 add ebx,dwordptr[ecx+ebp*4+48]
02741345 mov ebp,ebx
02741347 xor ebx,ebx
02741349 mov bl,ah
0274134B xor ebp,dwordptr[ecx+ebx*4+848]
02741352 mov ebx,eax
02741354 and ebx,0FF
0274135A add ebp,dwordptr[ecx+ebx*4+C48]
02741361 mov ebx,dwordptr[ecx+18]
02741364 xor ebp,ebx
02741366 xor ebx,ebx
02741368 xor edx,ebp
0274136A mov dwordptr[esp+14],edx
0274136E mov bl,byteptr[esp+16]
02741372 shr edx,18
02741375 mov ebp,dwordptr[ecx+ebx*4+448]
0274137C mov ebx,dwordptr[ecx+edx*4+48]
02741380 mov edx,dwordptr[esp+14]
02741384 add ebp,ebx
02741386 xor ebx,ebx
02741388 mov bl,dh
0274138A xor ebp,dwordptr[ecx+ebx*4+848]
02741391 mov ebx,edx
02741393 and ebx,0FF
02741399 add ebp,dwordptr[ecx+ebx*4+C48]
027413A0 mov ebx,dwordptr[ecx+1C]
027413A3 xor ebp,ebx
027413A5 xor ebx,ebx
027413A7 xor eax,ebp
027413A9 mov dwordptr[esp+14],eax
027413AD mov ebp,eax
027413AF mov bl,byteptr[esp+16]
027413B3 shr ebp,18
027413B6 mov ebx,dwordptr[ecx+ebx*4+448]
027413BD add ebx,dwordptr[ecx+ebp*4+48]
027413C1 mov ebp,ebx
027413C3 xor ebx,ebx
027413C5 mov bl,ah
027413C7 xor ebp,dwordptr[ecx+ebx*4+848]
027413CE mov ebx,eax
027413D0 and ebx,0FF
027413D6 add ebp,dwordptr[ecx+ebx*4+C48]
027413DD mov ebx,dwordptr[ecx+20]
027413E0 xor ebp,ebx
027413E2 xor ebx,ebx
027413E4 xor edx,ebp
027413E6 mov dwordptr[esp+14],edx
027413EA mov bl,byteptr[esp+16]
027413EE shr edx,18
027413F1 mov ebp,dwordptr[ecx+ebx*4+448]
027413F8 mov ebx,dwordptr[ecx+edx*4+48]
027413FC mov edx,dwordptr[esp+14]
02741400 add ebp,ebx
02741402 xor ebx,ebx
02741404 mov bl,dh
02741406 xor ebp,dwordptr[ecx+ebx*4+848]
0274140D mov ebx,edx
0274140F and ebx,0FF
02741415 add ebp,dwordptr[ecx+ebx*4+C48]
0274141C mov ebx,dwordptr[ecx+24]
0274141F xor ebp,ebx
02741421 xor ebx,ebx
02741423 xor eax,ebp
02741425 mov dwordptr[esp+14],eax
02741429 mov ebp,eax
0274142B mov bl,byteptr[esp+16]
0274142F shr ebp,18
02741432 mov ebx,dwordptr[ecx+ebx*4+448]
02741439 add ebx,dwordptr[ecx+ebp*4+48]
0274143D mov ebp,ebx
0274143F xor ebx,ebx
02741441 mov bl,ah
02741443 xor ebp,dwordptr[ecx+ebx*4+848]
0274144A mov ebx,eax
0274144C and ebx,0FF
02741452 add ebp,dwordptr[ecx+ebx*4+C48]
02741459 mov ebx,dwordptr[ecx+28]
0274145C xor ebp,ebx
0274145E xor ebx,ebx
02741460 xor edx,ebp
02741462 mov dwordptr[esp+14],edx
02741466 mov bl,byteptr[esp+16]
0274146A shr edx,18
0274146D mov ebp,dwordptr[ecx+ebx*4+448]
02741474 mov ebx,dwordptr[ecx+edx*4+48]
02741478 mov edx,dwordptr[esp+14]
0274147C add ebp,ebx
0274147E xor ebx,ebx
02741480 mov bl,dh
02741482 xor ebp,dwordptr[ecx+ebx*4+848]
02741489 mov ebx,edx
0274148B and ebx,0FF
02741491 add ebp,dwordptr[ecx+ebx*4+C48]
02741498 mov ebx,dwordptr[ecx+2C]
0274149B xor ebp,ebx
0274149D xor ebx,ebx
0274149F xor eax,ebp
027414A1 mov dwordptr[esp+14],eax
027414A5 mov ebp,eax
027414A7 mov bl,byteptr[esp+16]
027414AB shr ebp,18
027414AE mov ebx,dwordptr[ecx+ebx*4+448]
027414B5 add ebx,dwordptr[ecx+ebp*4+48]
027414B9 mov ebp,ebx
027414BB xor ebx,ebx
027414BD mov bl,ah
027414BF xor ebp,dwordptr[ecx+ebx*4+848]
027414C6 mov ebx,eax
027414C8 and ebx,0FF
027414CE add ebp,dwordptr[ecx+ebx*4+C48]
027414D5 mov ebx,dwordptr[ecx+30]
027414D8 xor ebp,ebx
027414DA xor ebx,ebx
027414DC xor edx,ebp
027414DE mov dwordptr[esp+14],edx
027414E2 mov bl,byteptr[esp+16]
027414E6 shr edx,18
027414E9 mov ebp,dwordptr[ecx+ebx*4+448]
027414F0 mov ebx,dwordptr[ecx+edx*4+48]
027414F4 mov edx,dwordptr[esp+14]
027414F8 add ebp,ebx
027414FA xor ebx,ebx
027414FC mov bl,dh
027414FE xor ebp,dwordptr[ecx+ebx*4+848]
02741505 mov ebx,edx
02741507 and ebx,0FF
0274150D add ebp,dwordptr[ecx+ebx*4+C48]
02741514 mov ebx,dwordptr[ecx+34]
02741517 xor ebp,ebx
02741519 xor eax,ebp
0274151B xor ebx,ebx
0274151D mov dwordptr[esp+14],eax
02741521 mov ebp,eax
02741523 mov bl,byteptr[esp+16]
02741527 mov ebx,dwordptr[ecx+ebx*4+448]
0274152E shr ebp,18
02741531 add ebx,dwordptr[ecx+ebp*4+48]
02741535 mov ebp,ebx
02741537 xor ebx,ebx
02741539 mov bl,ah
0274153B xor ebp,dwordptr[ecx+ebx*4+848]
02741542 mov ebx,eax
02741544 and ebx,0FF
0274154A add ebp,dwordptr[ecx+ebx*4+C48]
02741551 mov ebx,dwordptr[ecx+38]
02741554 xor ebp,ebx
02741556 xor ebx,ebx
02741558 xor edx,ebp
0274155A mov dwordptr[esp+14],edx
0274155E mov bl,byteptr[esp+16]
02741562 shr edx,18
02741565 mov ebp,dwordptr[ecx+ebx*4+448]
0274156C mov ebx,dwordptr[ecx+edx*4+48]
02741570 mov edx,dwordptr[esp+14]
02741574 add ebp,ebx
02741576 xor ebx,ebx
02741578 mov bl,dh
0274157A xor ebp,dwordptr[ecx+ebx*4+848]
02741581 mov ebx,edx
02741583 and ebx,0FF
02741589 add ebp,dwordptr[ecx+ebx*4+C48]
02741590 mov ebx,dwordptr[ecx+3C]
02741593 xor ebp,ebx
02741595 xor ebx,ebx
02741597 xor eax,ebp
02741599 mov dwordptr[esp+14],eax
0274159D mov ebp,eax
0274159F mov bl,byteptr[esp+16]
027415A3 shr ebp,18
027415A6 mov ebx,dwordptr[ecx+ebx*4+448]
027415AD add ebx,dwordptr[ecx+ebp*4+48]
027415B1 mov ebp,ebx
027415B3 xor ebx,ebx
027415B5 mov bl,ah
027415B7 xor ebp,dwordptr[ecx+ebx*4+848]
027415BE mov ebx,eax
027415C0 and ebx,0FF
027415C6 add ebp,dwordptr[ecx+ebx*4+C48]
027415CD mov ebx,dwordptr[ecx+40]
027415D0 xor ebp,ebx
027415D2 mov ebx,dwordptr[ecx+44]
027415D5 xor edx,ebp
027415D7 xor eax,ebx
027415D9 mov dwordptr[edi],edx //得到加密的8字节密文
027415DB mov dwordptr[esi],eax //得到加密的8字节密文
027415DD pop edi
027415DE pop esi
027415DF pop ebp
027415E0 pop ebx
027415E1 retn 8
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)