inno setup 5.5 可以对数据进行加密, 密码使用SHA1算法
相关函数 可以搜索字符串 "PasswordCheckHash"
Hash计算过程
CODE:00484C44 53 push ebx
CODE:00484C45 81 C4 50 FE FF FF add esp, 0FFFFFE50h
CODE:00484C4B 8B D8 mov ebx, eax
CODE:00484C4D 8B C4 mov eax, esp
CODE:00484C4F E8 9C C1 F9 FF call sha1_starts
CODE:00484C54 BA B0 4C 48 00 mov edx, offset aPasswordcheckh ; "PasswordCheckHash"
CODE:00484C59 8B C4 mov eax, esp
CODE:00484C5B B9 11 00 00 00 mov ecx, 11h
CODE:00484C60 E8 BB C1 F9 FF call sha1_update
CODE:00484C65 BA F8 01 4D 00 mov edx, offset unk_4D01F8 ; 不同程序不一样,可能是随机
CODE:00484C65 ; 09 16 C8 EA 49 A2 33 3F .汝I??..
CODE:00484C65 ; 14 47 DB BD 1F 35 20 E2 G劢5 ?.
CODE:00484C6A 8B C4 mov eax, esp
CODE:00484C6C B9 08 00 00 00 mov ecx, 8
CODE:00484C71 E8 AA C1 F9 FF call sha1_update
CODE:00484C76 8B C3 mov eax, ebx
CODE:00484C78 E8 BF E9 F7 FF call sub_40363C
CODE:00484C7D 8B C8 mov ecx, eax
CODE:00484C7F 8B D3 mov edx, ebx ; {password}
CODE:00484C81 8B C4 mov eax, esp
CODE:00484C83 E8 98 C1 F9 FF call sha1_update
CODE:00484C88 8D 94 24 9C 01 00 00 lea edx, [esp+1B4h+var_18]
CODE:00484C8F 8B C4 mov eax, esp
CODE:00484C91 E8 26 C2 F9 FF call sha1_finish
CODE:00484C96 BA E4 01 4D 00 mov edx, offset unk_4D01E4
CODE:00484C9B 8D 84 24 9C 01 00 00 lea eax, [esp+1B4h+var_18]
CODE:00484CA2 E8 35 C5 F9 FF call sub_4211DC
CODE:00484CA7 81 C4 B0 01 00 00 add esp, 1B0h
CODE:00484CAD 5B pop ebx
CODE:00484CAE C3 retn
Hash计算包括3个部分
- 固定字符串: PasswordCheckHash
- 随机一个8Byte
- 设置的密码