📄 ufstool.asm
字号:
include UFSTool.inc
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
MainDlgFunc proto :HWND,:UINT,:WPARAM,:LPARAM
WriteThenRead proto :DWORD,:DWORD,:DWORD,:DWORD
ReadBox proto :DWORD,:DWORD,:DWORD
ProgressDlgFunc proto :DWORD,:DWORD,:DWORD,:DWORD
FlashingFunc proto :DWORD
CalcActCode proto :DWORD,:DWORD,:DWORD,:DWORD,:LPSTR,:DWORD
CheckBoxType proto :DWORD
Random proto :DWORD
include ufs2xx.inc
includelib UFS2XX.lib
include UFSToolData.inc
include UFSToolBBS.inc
.code
SHA1_EnCode proc
pusha
mov ESP_Saved,esp
cld
mov ecx,[esp+28h]
mov esi,[esp+2Ch]
mov Total_Length,ecx
or ComputeFlag,0FFFFFFFFh
mov Message_Length,ecx
mov Intermediate_Hash[00h],67452301h
mov Intermediate_Hash[04h],0EFCDAB89h
mov Intermediate_Hash[08h],98BADCFEh
mov Intermediate_Hash[0Ch],10325476h
mov Intermediate_Hash[10h],0C3D2E1F0h
L1:
cmp Message_Length,40h ;nSize必须以64字节(40h)对齐
jb @F
mov eax,Intermediate_Hash[00h]
mov ebx,Intermediate_Hash[04h]
mov ecx,Intermediate_Hash[08h]
mov edx,Intermediate_Hash[0Ch]
mov ebp,Intermediate_Hash[10h]
SHA1FUNC1 Message_Block[00h],eax,ebp,ecx,edx,ebx
SHA1FUNC1 Message_Block[04h],ebp,edx,ebx,ecx,eax
SHA1FUNC1 Message_Block[08h],edx,ecx,eax,ebx,ebp
SHA1FUNC1 Message_Block[0Ch],ecx,ebx,ebp,eax,edx
SHA1FUNC1 Message_Block[10h],ebx,eax,edx,ebp,ecx
SHA1FUNC1 Message_Block[14h],eax,ebp,ecx,edx,ebx
SHA1FUNC1 Message_Block[18h],ebp,edx,ebx,ecx,eax
SHA1FUNC1 Message_Block[1Ch],edx,ecx,eax,ebx,ebp
SHA1FUNC1 Message_Block[20h],ecx,ebx,ebp,eax,edx
SHA1FUNC1 Message_Block[24h],ebx,eax,edx,ebp,ecx
SHA1FUNC1 Message_Block[28h],eax,ebp,ecx,edx,ebx
SHA1FUNC1 Message_Block[2Ch],ebp,edx,ebx,ecx,eax
SHA1FUNC1 Message_Block[30h],edx,ecx,eax,ebx,ebp
SHA1FUNC1 Message_Block[34h],ecx,ebx,ebp,eax,edx
SHA1FUNC1 Message_Block[38h],ebx,eax,edx,ebp,ecx
SHA1FUNC1 Message_Block[3Ch],eax,ebp,ecx,edx,ebx
SHA1FUNC2 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ebp,edx,ebx,ecx,eax
SHA1FUNC2 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],edx,ecx,eax,ebx,ebp
SHA1FUNC2 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ecx,ebx,ebp,eax,edx
SHA1FUNC2 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],ebx,eax,edx,ebp,ecx
SHA1FUNC3 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],eax,ebp,ebx,ecx,edx
SHA1FUNC3 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ebp,edx,eax,ebx,ecx
SHA1FUNC3 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],edx,ecx,ebp,eax,ebx
SHA1FUNC3 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ecx,ebx,edx,ebp,eax
SHA1FUNC3 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],ebx,eax,ecx,edx,ebp
SHA1FUNC3 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],eax,ebp,ebx,ecx,edx
SHA1FUNC3 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ebp,edx,eax,ebx,ecx
SHA1FUNC3 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],edx,ecx,ebp,eax,ebx
SHA1FUNC3 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ecx,ebx,edx,ebp,eax
SHA1FUNC3 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],ebx,eax,ecx,edx,ebp
SHA1FUNC3 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],eax,ebp,ebx,ecx,edx
SHA1FUNC3 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ebp,edx,eax,ebx,ecx
SHA1FUNC3 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],edx,ecx,ebp,eax,ebx
SHA1FUNC3 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],ecx,ebx,edx,ebp,eax
SHA1FUNC3 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ebx,eax,ecx,edx,ebp
SHA1FUNC3 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],eax,ebp,ebx,ecx,edx
SHA1FUNC3 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],ebp,edx,eax,ebx,ecx
SHA1FUNC3 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],edx,ecx,ebp,eax,ebx
SHA1FUNC3 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],ecx,ebx,edx,ebp,eax
SHA1FUNC3 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ebx,eax,ecx,edx,ebp
SHA1FUNC4 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],eax,ebp,ebx,ecx,edx
SHA1FUNC4 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],ebp,edx,eax,ebx,ecx
SHA1FUNC4 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],edx,ecx,ebp,eax,ebx
SHA1FUNC4 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],ecx,ebx,edx,ebp,eax
SHA1FUNC4 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ebx,eax,ecx,edx,ebp
SHA1FUNC4 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],eax,ebp,ebx,ecx,edx
SHA1FUNC4 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],ebp,edx,eax,ebx,ecx
SHA1FUNC4 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],edx,ecx,ebp,eax,ebx
SHA1FUNC4 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ecx,ebx,edx,ebp,eax
SHA1FUNC4 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],ebx,eax,ecx,edx,ebp
SHA1FUNC4 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],eax,ebp,ebx,ecx,edx
SHA1FUNC4 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],ebp,edx,eax,ebx,ecx
SHA1FUNC4 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],edx,ecx,ebp,eax,ebx
SHA1FUNC4 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ecx,ebx,edx,ebp,eax
SHA1FUNC4 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],ebx,eax,ecx,edx,ebp
SHA1FUNC4 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],eax,ebp,ebx,ecx,edx
SHA1FUNC4 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],ebp,edx,eax,ebx,ecx
SHA1FUNC4 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],edx,ecx,ebp,eax,ebx
SHA1FUNC4 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ecx,ebx,edx,ebp,eax
SHA1FUNC4 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],ebx,eax,ecx,edx,ebp
SHA1FUNC5 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],eax,ebp,ebx,ecx,edx
SHA1FUNC5 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],ebp,edx,eax,ebx,ecx
SHA1FUNC5 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],edx,ecx,ebp,eax,ebx
SHA1FUNC5 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ecx,ebx,edx,ebp,eax
SHA1FUNC5 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ebx,eax,ecx,edx,ebp
SHA1FUNC5 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],eax,ebp,ebx,ecx,edx
SHA1FUNC5 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ebp,edx,eax,ebx,ecx
SHA1FUNC5 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],edx,ecx,ebp,eax,ebx
SHA1FUNC5 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],ecx,ebx,edx,ebp,eax
SHA1FUNC5 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ebx,eax,ecx,edx,ebp
SHA1FUNC5 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],eax,ebp,ebx,ecx,edx
SHA1FUNC5 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ebp,edx,eax,ebx,ecx
SHA1FUNC5 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],edx,ecx,ebp,eax,ebx
SHA1FUNC5 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],ecx,ebx,edx,ebp,eax
SHA1FUNC5 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ebx,eax,ecx,edx,ebp
SHA1FUNC5 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],eax,ebp,ebx,ecx,edx
SHA1FUNC5 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ebp,edx,eax,ebx,ecx
SHA1FUNC5 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],edx,ecx,ebp,eax,ebx
SHA1FUNC5 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],ecx,ebx,edx,ebp,eax
SHA1FUNC5 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ebx,eax,ecx,edx,ebp
add Intermediate_Hash[00h],eax
add Intermediate_Hash[04h],ebx
add Intermediate_Hash[08h],ecx
add Intermediate_Hash[0Ch],edx
add Intermediate_Hash[10h],ebp
sub Message_Length,40h ;每次64字节
jmp L1
@@:
cmp ComputeFlag,0
jz @F
mov esp,ESP_Saved
call SHATail
jmp L1
@@:
mov esp,ESP_Saved
mov edi,[esp+24h]
mov esi,offset Intermediate_Hash[00h]
mov ecx,5
@@:
mov eax,[esi+ecx*4-4]
bswap eax
mov [edi+ecx*4-4],eax
loop @B
mov ecx,19h
xor eax,eax
mov edi,offset Message_Block[00h]
rep stosd
popa
retn 0Ch
SHA1_EnCode endp
SHATail proc
mov ecx,Message_Length
mov ComputeFlag,0
mov Message_Length,40h
mov eax,ecx
mov edi,offset Message_Block[00h]
test eax,eax
jz @F
rep movsb
@@:
mov ecx,eax
mov byte ptr [edi],80h
sub ecx,37h
inc edi
neg ecx
jz L1
jns @F
add Message_Length,40h
add ecx,40h
@@:
xor al,al
rep stosb
L1:
xor edx,edx
mov eax,Total_Length
mul multiplier
bswap eax
bswap edx
mov [edi],edx
mov [edi+4],eax
mov esi,offset Message_Block[00h]
ret
SHATail endp
multiplier dd 8
SHA2_EnCode proc
pusha
mov ESP_Saved,esp
cld
mov ecx,[esp+28h]
mov esi,[esp+2Ch]
mov Total_Length,ecx
or ComputeFlag,0FFFFFFFFh
mov Message_Length,ecx
mov Intermediate_Hash[00h],12A57023h
mov Intermediate_Hash[04h],3EC24F15h
mov Intermediate_Hash[08h],4641DCEFh
mov Intermediate_Hash[0Ch],72354168h
mov Intermediate_Hash[10h],55129475h
L1:
cmp Message_Length,40h
jb @F
mov eax,Intermediate_Hash[00h]
mov ebx,Intermediate_Hash[04h]
mov ecx,Intermediate_Hash[08h]
mov edx,Intermediate_Hash[0Ch]
mov ebp,Intermediate_Hash[10h]
SHA2FUNC1 Message_Block[00h],eax,ebp,ecx,edx,ebx
SHA2FUNC1 Message_Block[04h],ebp,edx,ebx,ecx,eax
SHA2FUNC1 Message_Block[08h],edx,ecx,eax,ebx,ebp
SHA2FUNC1 Message_Block[0Ch],ecx,ebx,ebp,eax,edx
SHA2FUNC1 Message_Block[10h],ebx,eax,edx,ebp,ecx
SHA2FUNC1 Message_Block[14h],eax,ebp,ecx,edx,ebx
SHA2FUNC1 Message_Block[18h],ebp,edx,ebx,ecx,eax
SHA2FUNC1 Message_Block[1Ch],edx,ecx,eax,ebx,ebp
SHA2FUNC1 Message_Block[20h],ecx,ebx,ebp,eax,edx
SHA2FUNC1 Message_Block[24h],ebx,eax,edx,ebp,ecx
SHA2FUNC1 Message_Block[28h],eax,ebp,ecx,edx,ebx
SHA2FUNC1 Message_Block[2Ch],ebp,edx,ebx,ecx,eax
SHA2FUNC1 Message_Block[30h],edx,ecx,eax,ebx,ebp
SHA2FUNC1 Message_Block[34h],ecx,ebx,ebp,eax,edx
SHA2FUNC1 Message_Block[38h],ebx,eax,edx,ebp,ecx
SHA2FUNC1 Message_Block[3Ch],eax,ebp,ecx,edx,ebx
SHA2FUNC2 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ebp,edx,ebx,ecx,eax
SHA2FUNC2 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],edx,ecx,eax,ebx,ebp
SHA2FUNC2 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ecx,ebx,ebp,eax,edx
SHA2FUNC2 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],ebx,eax,edx,ebp,ecx
SHA2FUNC3 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],eax,ebp,ebx,ecx,edx
SHA2FUNC3 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ebp,edx,eax,ebx,ecx
SHA2FUNC3 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],edx,ecx,ebp,eax,ebx
SHA2FUNC3 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ecx,ebx,edx,ebp,eax
SHA2FUNC3 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],ebx,eax,ecx,edx,ebp
SHA2FUNC3 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],eax,ebp,ebx,ecx,edx
SHA2FUNC3 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ebp,edx,eax,ebx,ecx
SHA2FUNC3 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],edx,ecx,ebp,eax,ebx
SHA2FUNC3 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ecx,ebx,edx,ebp,eax
SHA2FUNC3 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],ebx,eax,ecx,edx,ebp
SHA2FUNC3 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],eax,ebp,ebx,ecx,edx
SHA2FUNC3 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ebp,edx,eax,ebx,ecx
SHA2FUNC3 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],edx,ecx,ebp,eax,ebx
SHA2FUNC3 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],ecx,ebx,edx,ebp,eax
SHA2FUNC3 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ebx,eax,ecx,edx,ebp
SHA2FUNC3 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],eax,ebp,ebx,ecx,edx
SHA2FUNC3 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],ebp,edx,eax,ebx,ecx
SHA2FUNC3 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],edx,ecx,ebp,eax,ebx
SHA2FUNC3 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],ecx,ebx,edx,ebp,eax
SHA2FUNC3 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ebx,eax,ecx,edx,ebp
SHA2FUNC4 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],eax,ebp,ebx,ecx,edx
SHA2FUNC4 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],ebp,edx,eax,ebx,ecx
SHA2FUNC4 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],edx,ecx,ebp,eax,ebx
SHA2FUNC4 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],ecx,ebx,edx,ebp,eax
SHA2FUNC4 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ebx,eax,ecx,edx,ebp
SHA2FUNC4 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],eax,ebp,ebx,ecx,edx
SHA2FUNC4 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],ebp,edx,eax,ebx,ecx
SHA2FUNC4 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],edx,ecx,ebp,eax,ebx
SHA2FUNC4 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ecx,ebx,edx,ebp,eax
SHA2FUNC4 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],ebx,eax,ecx,edx,ebp
SHA2FUNC4 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],eax,ebp,ebx,ecx,edx
SHA2FUNC4 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],ebp,edx,eax,ebx,ecx
SHA2FUNC4 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],edx,ecx,ebp,eax,ebx
SHA2FUNC4 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ecx,ebx,edx,ebp,eax
SHA2FUNC4 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],ebx,eax,ecx,edx,ebp
SHA2FUNC4 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],eax,ebp,ebx,ecx,edx
SHA2FUNC4 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],ebp,edx,eax,ebx,ecx
SHA2FUNC4 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],edx,ecx,ebp,eax,ebx
SHA2FUNC4 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ecx,ebx,edx,ebp,eax
SHA2FUNC4 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],ebx,eax,ecx,edx,ebp
SHA2FUNC5 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],eax,ebp,ebx,ecx,edx
SHA2FUNC5 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],ebp,edx,eax,ebx,ecx
SHA2FUNC5 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],edx,ecx,ebp,eax,ebx
SHA2FUNC5 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ecx,ebx,edx,ebp,eax
SHA2FUNC5 Message_Block[34h],Message_Block[20h],Message_Block[08h],Message_Block[00h],ebx,eax,ecx,edx,ebp
SHA2FUNC5 Message_Block[38h],Message_Block[24h],Message_Block[0Ch],Message_Block[04h],eax,ebp,ebx,ecx,edx
SHA2FUNC5 Message_Block[3Ch],Message_Block[28h],Message_Block[10h],Message_Block[08h],ebp,edx,eax,ebx,ecx
SHA2FUNC5 Message_Block[00h],Message_Block[2Ch],Message_Block[14h],Message_Block[0Ch],edx,ecx,ebp,eax,ebx
SHA2FUNC5 Message_Block[04h],Message_Block[30h],Message_Block[18h],Message_Block[10h],ecx,ebx,edx,ebp,eax
SHA2FUNC5 Message_Block[08h],Message_Block[34h],Message_Block[1Ch],Message_Block[14h],ebx,eax,ecx,edx,ebp
SHA2FUNC5 Message_Block[0Ch],Message_Block[38h],Message_Block[20h],Message_Block[18h],eax,ebp,ebx,ecx,edx
SHA2FUNC5 Message_Block[10h],Message_Block[3Ch],Message_Block[24h],Message_Block[1Ch],ebp,edx,eax,ebx,ecx
SHA2FUNC5 Message_Block[14h],Message_Block[00h],Message_Block[28h],Message_Block[20h],edx,ecx,ebp,eax,ebx
SHA2FUNC5 Message_Block[18h],Message_Block[04h],Message_Block[2Ch],Message_Block[24h],ecx,ebx,edx,ebp,eax
SHA2FUNC5 Message_Block[1Ch],Message_Block[08h],Message_Block[30h],Message_Block[28h],ebx,eax,ecx,edx,ebp
SHA2FUNC5 Message_Block[20h],Message_Block[0Ch],Message_Block[34h],Message_Block[2Ch],eax,ebp,ebx,ecx,edx
SHA2FUNC5 Message_Block[24h],Message_Block[10h],Message_Block[38h],Message_Block[30h],ebp,edx,eax,ebx,ecx
SHA2FUNC5 Message_Block[28h],Message_Block[14h],Message_Block[3Ch],Message_Block[34h],edx,ecx,ebp,eax,ebx
SHA2FUNC5 Message_Block[2Ch],Message_Block[18h],Message_Block[00h],Message_Block[38h],ecx,ebx,edx,ebp,eax
SHA2FUNC5 Message_Block[30h],Message_Block[1Ch],Message_Block[04h],Message_Block[3Ch],ebx,eax,ecx,edx,ebp
add Intermediate_Hash[00h],eax
add Intermediate_Hash[04h],ebx
add Intermediate_Hash[08h],ecx
add Intermediate_Hash[0Ch],edx
add Intermediate_Hash[10h],ebp
sub Message_Length,40h
jmp L1
@@:
cmp ComputeFlag,0
jz @F
mov esp,ESP_Saved
call SHATail
jmp L1
@@:
mov esp,ESP_Saved
mov edi,[esp+24h]
mov esi,offset Intermediate_Hash[00h]
mov ecx,5
@@:
mov eax,[esi+ecx*4-4]
bswap eax
mov [edi+ecx*4-4],eax
loop @B
mov ecx,19h
xor eax,eax
mov edi,offset Message_Block[00h]
rep stosd
popa
ret 0Ch
SHA2_EnCode endp
; ---------------------------------------------------------------------------
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke GetCommandLine
invoke InitCommonControls
mov CommandLine,eax
invoke LoadLibrary,addr LibFileName
.if (eax)
mov hUFS2XXLibModule,eax
invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT
.if (ftHandle)
invoke FT_Close,ftHandle
.endif
invoke FreeLibrary,hUFS2XXLibModule
.else
invoke MessageBox,NULL,addr NoUFS2XX,addr szError,MB_OK or MB_ICONERROR
.endif
invoke ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc,OFFSET MainDlgFunc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,DLGWINDOWEXTRA
push hInst
pop wc.hInstance
mov wc.hbrBackground,COLOR_BTNFACE+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,hInstance,IDI_ICON
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx,addr wc
invoke CreateDialogParam,hInstance,IDC_MainDlg,NULL,addr MainDlgFunc,NULL
mov hWindow ,eax
invoke ShowWindow,hWindow,SW_SHOWNORMAL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -