inno setup 加密算法

发布时间 2023-11-07 12:54:02作者: Yofoo

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个部分

  1. 固定字符串: PasswordCheckHash
  2. 随机一个8Byte
  3. 设置的密码