📄 q128.inc
字号:
dd 08e90a5dah,0754e95f4h,05b31b009h,0b4ea22ach,0713544aeh,0ce65818dh
dd 0067f92cbh,039e0ea51h,0b0c1fc5eh,0c84a1ceeh,06aa1df58h,0e9f40fc6h
dd 0f1faf917h,013064030h,005b5f044h,0424336a8h,00a24c939h,0c44148b4h
dd 06f4420b4h,0047bd15ah,039b0e5f9h,08bc70b58h,00e5f1863h,0d1389a4fh
dd 0af2eb6f2h,0c9d43258h,0107e73d1h,089c348c9h,09cea959ah,011e05d67h
dd 0bb2b1479h,073835651h,0f34cebe8h,0d36cd676h,04540d413h,05cd00c74h
dd 031723197h,0eea7e2d5h,00f236813h,081b3cdc9h,07fd80da3h,0d7f559eah
dd 003ca628fh,03dcb34a3h,033767206h,02c2b69c4h,051f727f6h,0829bf180h
dd 0039a6d27h,056169b8bh,04d82007dh,09d24b484h,0bde6d7dch,0389c9a21h
dd 069d9ecb9h,0b792114dh,044defaa5h,08fbcda02h,092b58df9h,0962c0265h
dd 0cf19f1fdh,07462ea2ch,0227471a7h,0c53d38c4h,09257d33fh,032e85cb0h
dd 0abb7396eh,030ec1f21h,058fbd286h,05b61bfa1h,0240be36ch,0b7704f8bh
dd 0a69012ech,01f5d1bc2h,08305df36h,0299e9980h,05ff8303dh,0c58f69aah
dd 07ddc4e32h,0e6d767d5h,0880d69d7h,0d46f34cdh,0ff47bfb2h,022962f61h
dd 0a9e37557h,0fa101130h,083e781f0h,0cf49fe55h,0fcddd295h,02d07161ch
dd 0e83a2ed8h,0ca4e5f7fh,075fcc49ah,07915ce06h,054f086dch,0a9012b91h
dd 00ebd46a5h,0df67822ch,0d9fa4e21h,0af7eb95ah,081019ca7h,0f118a7d1h
dd 000e25ec6h,09b0b29e7h,0e2fcb927h,0ec11f02ah,0857a4dfdh,03497ce7bh
dd 01b949bf6h,09d74bb2ch,0cc31cdb4h,0e3d0c6ffh,0bf00ca8bh,036938deah
dd 016b3b074h,0ced7d0e3h,06037470fh,0cd1db26ch,06da23de3h,0bbc94abfh
dd 05a1dcfd1h,0c76974fdh,0a05dd149h,0f034d809h,0a4260013h,0b091f3f6h
dd 0a5b82ea5h,06786f4dah,04bad9d1eh,01e71641ah,0b59652dch,0ba576409h
dd 0b1bd8c2eh,02d5719b4h,07331073fh,0ac568513h,0b97f5840h,0bf50c523h
dd 00703e2bbh,06764aa1ch,020926cf0h,0012c7fd8h,01cc776e5h,09e0c88cdh
dd 0995f65deh,0f44f0953h,0e86a2170h,01fef4aach,07c426084h,0771ad9cdh
dd 02c9938aah,0b8032830h,04a33b3a8h,0751e9a5ch,0dd63c1bdh,079f790c0h
dd 051157930h,0d5f11a7bh,0d8646097h,0cb6220a7h,0d689299ah,0879c50aah
dd 0b7c21ee5h,04b1fcc70h,00b08b6e1h,028b2e658h,0b295b067h,0ab056800h
dd 075accb32h,0bfb29be5h,0f5d127e5h,06c8e423bh,06b6ffe46h,0215c4deeh
dd 0f9da73bfh,07b41823fh,048d5aeffh,01405a28bh,0bfe2944dh,0347590bdh
dd 0b45873c2h,0b65c3053h,0a0bf8f8fh,0937bace7h,01ae8eb86h,040a52bffh
dd 0e24ee849h,0d3de8718h,06c3c1355h,01990d867h,054a08974h,0375dacf4h
dd 0508b5786h,063fd2580h,0f98a7c17h,034c7c1d3h,0d0a6b4f9h,03e01562ch
dd 0185ef979h,05412d81ah,0b5c65d74h,026edfe3bh,035ebbe0bh,002e61d57h
dd 015cb8395h,00e0f17cbh,0fc3f8c53h,05a4dc079h,0e0f8fab6h,05bd3eecfh
dd 0e1d4856eh,08aeb7480h,05c3252b2h,0ab5567a8h,0fb6c6140h,0b3e9c017h
dd 0ec41ff82h,0f064d7a1h,0491b8fe1h,0a87d5be1h,010cc22bfh,0f6a91404h
dd 00d77242ah,0da602306h,051a7285eh,0109c2d17h
.data?
expandkey dd 64 dup(?)
.code
q128_setkey proc ptrInkey:DWORD
pushad
mov esi,[esp+28h]
mov eax,[esi] ; b0
mov ebx,[esi+4] ; b1
mov ecx,[esi+8] ; b2
mov edx,[esi+12] ; b3
xor esi,esi
mov edi,19
@_r2:
mov ebp,eax
and ebp,3FFh
xor ebx,[ftab+ebp*4]
ror eax,10
mov ebp,ebx
and ebp,3FFh
xor ecx,[ftab+ebp*4]
ror ebx,10
mov ebp,ecx
and ebp,3FFh
xor edx,[ftab+ebp*4]
ror ecx,10
mov ebp,edx
and ebp,3FFh
xor eax,[ftab+ebp*4]
ror edx,10
cmp edi,16
jg @_r1
mov [expandkey+esi],eax
mov [expandkey+esi+4],ebx
mov [expandkey+esi+8],ecx
mov [expandkey+esi+12],edx
add esi,16
@_r1:
dec edi
jnz @_r2
popad
ret
q128_setkey endp
q128_encrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
pushad
mov esi,[esp+28h] ; ptrIndata
mov eax,[esi] ; b0
mov ebx,[esi+4] ; b1
mov ecx,[esi+8] ; b2
mov edx,[esi+12] ; b3
xor esi,esi
mov edi,16
@_r1:
mov ebp,eax
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4]
xor ebx,ebp
rol eax,10
mov ebp,ebx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+4]
xor ecx,ebp
rol ebx,10
mov ebp,ecx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+8]
xor edx,ebp
rol ecx,10
mov ebp,edx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+12]
xor eax,ebp
rol edx,10
add esi,4
dec edi
jnz @_r1
mov edi,[esp+2ch] ; ptrOutdata
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
popad
ret
q128_encrypt endp
q128_decrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
pushad
mov esi,[esp+28h] ; ptrIndata
mov eax,[esi] ; b0
mov ebx,[esi+4] ; b1
mov ecx,[esi+8] ; b2
mov edx,[esi+12] ; b3
xor esi,esi
mov edi,16
@_r1:
ror edx,10
mov ebp,edx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+63*4]
xor eax,ebp
ror ecx,10
mov ebp,ecx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+63*4-4]
xor edx,ebp
ror ebx,10
mov ebp,ebx
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+63*4-8]
xor ecx,ebp
ror eax,10
mov ebp,eax
and ebp,3FFh
mov ebp,[ftab+ebp*4]
add ebp,[expandkey+esi*4+63*4-12]
xor ebx,ebp
sub esi,4
dec edi
jnz @_r1
mov edi,[esp+2ch] ; ptrOutdata
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
popad
ret
q128_decrypt endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -