📄 cast256.inc
字号:
dd 010428db7h, 08272a972h, 09270c4a8h, 0127de50bh, 0285ba1c8h, 03c62f44fh
dd 035c0eaa5h, 0e805d231h, 0428929fbh, 0b4fcdf82h, 04fb66a53h, 00e7dc15bh
dd 01f081fabh, 0108618aeh, 0fcfd086dh, 0f9ff2889h, 0694bcc11h, 0236a5caeh
dd 012deca4dh, 02c3f8cc5h, 0d2d02dfeh, 0f8ef5896h, 0e4cf52dah, 095155b67h
dd 0494a488ch, 0b9b6a80ch, 05c8f82bch, 089d36b45h, 03a609437h, 0ec00c9a9h
dd 044715253h, 00a874b49h, 0d773bc40h, 07c34671ch, 002717ef6h, 04feb5536h
dd 0a2d02fffh, 0d2bf60c4h, 0d43f03c0h, 050b4ef6dh, 007478cd1h, 0006e1888h
dd 0a2e53f55h, 0b9e6d4bch, 0a2048016h, 097573833h, 0d7207d67h, 0de0f8f3dh
dd 072f87b33h, 0abcc4f33h, 07688c55dh, 07b00a6b0h, 0947b0001h, 0570075d2h
dd 0f9bb88f8h, 08942019eh, 04264a5ffh, 0856302e0h, 072dbd92bh, 0ee971b69h
dd 06ea22fdeh, 05f08ae2bh, 0af7a616dh, 0e5c98767h, 0cf1febd2h, 061efc8c2h
dd 0f1ac2571h, 0cc8239c2h, 067214cb8h, 0b1e583d1h, 0b7dc3e62h, 07f10bdceh
dd 0f90a5c38h, 00ff0443dh, 0606e6dc6h, 060543a49h, 05727c148h, 02be98a1dh
dd 08ab41738h, 020e1be24h, 0af96da0fh, 068458425h, 099833be5h, 0600d457dh
dd 0282f9350h, 08334b362h, 0d91d1120h, 02b6d8da0h, 0642b1e31h, 09c305a00h
dd 052bce688h, 01b03588ah, 0f7baefd5h, 04142ed9ch, 0a4315c11h, 083323ec5h
dd 0dfef4636h, 0a133c501h, 0e9d3531ch, 0ee353783h
castsbox4 dd 09db30420h, 01fb6e9deh, 0a7be7befh, 0d273a298h, 04a4f7bdbh, 064ad8c57h
dd 085510443h, 0fa020ed1h, 07e287affh, 0e60fb663h, 0095f35a1h, 079ebf120h
dd 0fd059d43h, 06497b7b1h, 0f3641f63h, 0241e4adfh, 028147f5fh, 04fa2b8cdh
dd 0c9430040h, 00cc32220h, 0fdd30b30h, 0c0a5374fh, 01d2d00d9h, 024147b15h
dd 0ee4d111ah, 00fca5167h, 071ff904ch, 02d195ffeh, 01a05645fh, 00c13fefeh
dd 0081b08cah, 005170121h, 080530100h, 0e83e5efeh, 0ac9af4f8h, 07fe72701h
dd 0d2b8ee5fh, 006df4261h, 0bb9e9b8ah, 07293ea25h, 0ce84ffdfh, 0f5718801h
dd 03dd64b04h, 0a26f263bh, 07ed48400h, 0547eebe6h, 0446d4ca0h, 06cf3d6f5h
dd 02649abdfh, 0aea0c7f5h, 036338cc1h, 0503f7e93h, 0d3772061h, 011b638e1h
dd 072500e03h, 0f80eb2bbh, 0abe0502eh, 0ec8d77deh, 057971e81h, 0e14f6746h
dd 0c9335400h, 06920318fh, 0081dbb99h, 0ffc304a5h, 04d351805h, 07f3d5ce3h
dd 0a6c866c6h, 05d5bcca9h, 0daec6feah, 09f926f91h, 09f46222fh, 03991467dh
dd 0a5bf6d8eh, 01143c44fh, 043958302h, 0d0214eebh, 0022083b8h, 03fb6180ch
dd 018f8931eh, 0281658e6h, 026486e3eh, 08bd78a70h, 07477e4c1h, 0b506e07ch
dd 0f32d0a25h, 079098b02h, 0e4eabb81h, 028123b23h, 069dead38h, 01574ca16h
dd 0df871b62h, 0211c40b7h, 0a51a9ef9h, 00014377bh, 0041e8ac8h, 009114003h
dd 0bd59e4d2h, 0e3d156d5h, 04fe876d5h, 02f91a340h, 0557be8deh, 000eae4a7h
dd 00ce5c2ech, 04db4bba6h, 0e756bdffh, 0dd3369ach, 0ec17b035h, 006572327h
dd 099afc8b0h, 056c8c391h, 06b65811ch, 05e146119h, 06e85cb75h, 0be07c002h
dd 0c2325577h, 0893ff4ech, 05bbfc92dh, 0d0ec3b25h, 0b7801ab7h, 08d6d3b24h
dd 020c763efh, 0c366a5fch, 09c382880h, 00ace3205h, 0aac9548ah, 0eca1d7c7h
dd 0041afa32h, 01d16625ah, 06701902ch, 09b757a54h, 031d477f7h, 09126b031h
dd 036cc6fdbh, 0c70b8b46h, 0d9e66a48h, 056e55a79h, 0026a4cebh, 052437effh
dd 02f8f76b4h, 00df980a5h, 08674cde3h, 0edda04ebh, 017a9be04h, 02c18f4dfh
dd 0b7747f9dh, 0ab2af7b4h, 0efc34d20h, 02e096b7ch, 01741a254h, 0e5b6a035h
dd 0213d42f6h, 02c1c7c26h, 061c2f50fh, 06552daf9h, 0d2c231f8h, 025130f69h
dd 0d8167fa2h, 00418f2c8h, 0001a96a6h, 00d1526abh, 063315c21h, 05e0a72ech
dd 049bafefdh, 0187908d9h, 08d0dbd86h, 0311170a7h, 03e9b640ch, 0cc3e10d7h
dd 0d5cad3b6h, 00caec388h, 0f73001e1h, 06c728affh, 071eae2a1h, 01f9af36eh
dd 0cfcbd12fh, 0c1de8417h, 0ac07be6bh, 0cb44a1d8h, 08b9b0f56h, 0013988c3h
dd 0b1c52fcah, 0b4be31cdh, 0d8782806h, 012a3a4e2h, 06f7de532h, 058fd7eb6h
dd 0d01ee900h, 024adffc2h, 0f4990fc5h, 09711aac5h, 0001d7b95h, 082e5e7d2h
dd 0109873f6h, 000613096h, 0c32d9521h, 0ada121ffh, 029908415h, 07fbb977fh
dd 0af9eb3dbh, 029c9ed2ah, 05ce2a465h, 0a730f32ch, 0d0aa3fe8h, 08a5cc091h
dd 0d49e2ce7h, 00ce454a9h, 0d60acd86h, 0015f1919h, 077079103h, 0dea03af6h
dd 078a8565eh, 0dee356dfh, 021f05cbeh, 08b75e387h, 0b3c50651h, 0b8a5c3efh
dd 0d8eeb6d2h, 0e523be77h, 0c2154529h, 02f69efdfh, 0afe67afbh, 0f470c4b2h
dd 0f3e0eb5bh, 0d6cc9876h, 039e4460ch, 01fda8538h, 01987832fh, 0ca007367h
dd 0a99144f8h, 0296b299eh, 0492fc295h, 09266beabh, 0b5676e69h, 09bd3dddah
dd 0df7e052fh, 0db25701ch, 01b5e51eeh, 0f65324e6h, 06afce36ch, 00316cc04h
dd 08644213eh, 0b7dc59d0h, 07965291fh, 0ccd6fd43h, 041823979h, 0932bcdf6h
dd 0b657c34dh, 04edfd282h, 07ae5290ch, 03cb9536bh, 0851e20feh, 09833557eh
dd 013ecf0b0h, 0d3ffb372h, 03f85c5c1h, 00aef7ed2h
.data?
lk dd 8 dup(?)
tm dd 9 dup(?)
tr dd 9 dup(?)
cast256_lkey dd 96 dup(?)
_cm dd ?
_cr dd ?
.code
cast256_setkey proc ptrInkey:DWORD, ptrInkey_length:DWORD
pushad
mov esi,[esp+28h] ; ptrInkey
mov ebp,[esp+2ch] ; ptrInkey_length
shl ebp,3
shr ebp,5
xor ecx,ecx
@_r1:
mov eax,[esi+ecx*4]
bswap eax
mov [lk+ecx*4],eax
inc ecx
cmp ecx,ebp
jnz @_r1
lea edi,[lk+ecx*4]
mov ecx,8
sub ecx,ebp
xor eax,eax
rep stosb
xor edi,edi
mov _cm,5a827999h
mov _cr,19
@_r4:
xor ebp,ebp ; j
mov eax,_cm
mov ebx,_cr
mov [tm+ebp*4],eax
mov [tr+ebp*4],ebx
@_r2:
mov eax,[tm+ebp*4]
add eax,6ed9eba1h
mov _cm,eax
mov ebx,[tr+ebp*4]
add ebx,17
mov _cr,ebx
inc ebp
mov [tm+ebp*4],eax
mov [tr+ebp*4],ebx
cmp ebp,8
jl @_r2
k_rnd lk,tr,tm
xor ebp,ebp ; j
mov eax,_cm
mov ebx,_cr
mov [tm+ebp*4],eax
mov [tr+ebp*4],ebx
@_r3:
mov eax,[tm+ebp*4]
add eax,6ed9eba1h
mov _cm,eax
mov ebx,[tr+ebp*4]
add ebx,17
mov _cr,ebx
inc ebp
mov [tm+ebp*4],eax
mov [tr+ebp*4],ebx
cmp ebp,8
jl @_r3
k_rnd lk,tr,tm
mov eax,[lk]
mov ebx,[lk+8]
mov ecx,[lk+16]
mov edx,[lk+24]
mov [cast256_lkey+edi*4],eax
mov [cast256_lkey+edi*4+4],ebx
mov [cast256_lkey+edi*4+8],ecx
mov [cast256_lkey+edi*4+12],edx
mov eax,[lk+28]
mov ebx,[lk+20]
mov ecx,[lk+12]
mov edx,[lk+4]
mov [cast256_lkey+edi*4+16],eax
mov [cast256_lkey+edi*4+20],ebx
mov [cast256_lkey+edi*4+24],ecx
mov [cast256_lkey+edi*4+28],edx
add edi,8
cmp edi,96
jl @_r4
popad
ret
cast256_setkey endp
cast256_encrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
pushad
mov esi,[esp+28h] ; ptrIndata
mov edi,[esp+2ch] ; ptrOutdata
mov eax,[esi]
mov ebx,[esi+4]
mov ecx,[esi+8]
mov edx,[esi+12]
bswap eax
bswap ebx
bswap ecx
bswap edx
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
f_rnd edi,0
f_rnd edi,8
f_rnd edi,16
f_rnd edi,24
f_rnd edi,32
f_rnd edi,40
i_rnd edi,48
i_rnd edi,56
i_rnd edi,64
i_rnd edi,72
i_rnd edi,80
i_rnd edi,88
mov eax,[edi]
mov ebx,[edi+4]
mov ecx,[edi+8]
mov edx,[edi+12]
bswap eax
bswap ebx
bswap ecx
bswap edx
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
popad
ret
cast256_encrypt endp
cast256_decrypt proc ptrIndata:DWORD, ptrOutdata:DWORD
pushad
mov esi,[esp+28h] ; ptrIndata
mov edi,[esp+2ch] ; ptrOutdata
mov eax,[esi]
mov ebx,[esi+4]
mov ecx,[esi+8]
mov edx,[esi+12]
bswap eax
bswap ebx
bswap ecx
bswap edx
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
f_rnd edi,88
f_rnd edi,80
f_rnd edi,72
f_rnd edi,64
f_rnd edi,56
f_rnd edi,48
i_rnd edi,40
i_rnd edi,32
i_rnd edi,24
i_rnd edi,16
i_rnd edi,8
i_rnd edi,0
mov eax,[edi]
mov ebx,[edi+4]
mov ecx,[edi+8]
mov edx,[edi+12]
bswap eax
bswap ebx
bswap ecx
bswap edx
mov [edi],eax
mov [edi+4],ebx
mov [edi+8],ecx
mov [edi+12],edx
popad
ret
cast256_decrypt endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -