首页
社区
课程
招聘
[原创]HappyTown CrackMe11的破解以及注册机(C源代码)
发表于: 2006-5-13 20:58 7800

[原创]HappyTown CrackMe11的破解以及注册机(C源代码)

2006-5-13 20:58
7800

原文http://bbs.pediy.com/showthread.php?s=&threadid=25504
分析如下:
小虾大侠已经分析的大部分,我这里主要分析一下加密部分。
00401290  /$  55            push    ebp
00401291  |.  8BEC          mov     ebp, esp
00401293  |.  83C4 A4       add     esp, -5C
00401296  |.  53            push    ebx
00401297  |.  56            push    esi
00401298  |.  57            push    edi
00401299  |.  8B45 18       mov     eax, [ebp+18]
0040129C  |.  0BC0          or      eax, eax
0040129E  |.  74 03         je      short 004012A3
004012A0  |.  48            dec     eax
004012A1  |.  75 25         jnz     short 004012C8
004012A3  |>  8B7D 14       mov     edi, [ebp+14]
//下面是变种的sha的state,为什么不是md5,因为md5的state是4个,不是5个
004012A6  |.  C707 41523896 mov     dword ptr [edi], 96385241
004012AC  |.  C747 04 AFBDE>mov     dword ptr [edi+4], ABECBDAF
004012B3  |.  C747 08 46531>mov     dword ptr [edi+8], 95175346
004012BA  |.  C747 0C 13542>mov     dword ptr [edi+C], 85265413
004012C1  |.  C747 10 82136>mov     dword ptr [edi+10], 97641382
004012C8  |>  33C0          xor     eax, eax
004012CA  |.  8945 FC       mov     [ebp-4], eax
004012CD  |.  8845 F8       mov     [ebp-8], al
004012D0  |>  8B75 08       /mov     esi, [ebp+8]
004012D3  |.  8D7D A4       |lea     edi, [ebp-5C]
004012D6  |.  B9 10000000   |mov     ecx, 10
004012DB  |.  8B5D FC       |mov     ebx, [ebp-4]
004012DE  |>  8D53 04       |/lea     edx, [ebx+4]
004012E1  |.  3B55 0C       ||cmp     edx, [ebp+C]
004012E4  |.  77 0F         ||ja      short 004012F5
004012E6  |.  8B0433        ||mov     eax, [ebx+esi]
004012E9  |.  0FC8          ||bswap   eax
004012EB  |.  AB            ||stos    dword ptr es:[edi]
004012EC  |.  8BDA          ||mov     ebx, edx
004012EE  |.^ E2 EE         |\loopd   short 004012DE
004012F0  |.  895D FC       |mov     [ebp-4], ebx
004012F3  |.  EB 59         |jmp     short 0040134E
004012F5  |>  8B45 18       |mov     eax, [ebp+18]
004012F8  |.  0BC0          |or      eax, eax
004012FA  |.  74 09         |je      short 00401305
004012FC  |.  83F8 03       |cmp     eax, 3
004012FF  |.  0F85 E80D0000 |jnz     004020ED
00401305  |>  8BD1          |mov     edx, ecx
00401307  |.  3B5D 0C       |cmp     ebx, [ebp+C]
0040130A  |.  77 2A         |ja      short 00401336
0040130C  |.  2BC0          |sub     eax, eax
0040130E  |.  B5 04         |mov     ch, 4
00401310  |>  3B5D 0C       |/cmp     ebx, [ebp+C]
00401313  |.  74 0B         ||je      short 00401320
00401315  |.  C1E0 08       ||shl     eax, 8
00401318  |.  8A0433        ||mov     al, [ebx+esi]
0040131B  |.  43            ||inc     ebx
0040131C  |.  FECD          ||dec     ch
0040131E  |.^ EB F0         |\jmp     short 00401310
00401320  |>  43            |inc     ebx
00401321  |.  895D FC       |mov     [ebp-4], ebx
00401324  |.  C1E0 08       |shl     eax, 8
00401327  |.  B0 80         |mov     al, 80
00401329  |>  FECD          |/dec     ch
0040132B  |.  74 05         ||je      short 00401332
0040132D  |.  C1E0 08       ||shl     eax, 8
00401330  |.^ EB F7         |\jmp     short 00401329
00401332  |>  AB            |stos    dword ptr es:[edi]
00401333  |.  49            |dec     ecx
00401334  |.  74 18         |je      short 0040134E
00401336  |>  2BC0          |sub     eax, eax
00401338  |.  F3:AB         |rep     stos dword ptr es:[edi]
0040133A  |.  80FA 03       |cmp     dl, 3
0040133D  |.  72 0F         |jb      short 0040134E
0040133F  |.  B0 08         |mov     al, 8
00401341  |.  F765 10       |mul     dword ptr [ebp+10]
//上面都是初始化加密数据,跟踪一下就知道了
00401344  |.  8955 DC       |mov     [ebp-24], edx
00401347  |.  8945 E0       |mov     [ebp-20], eax
0040134A  |.  C645 F8 01    |mov     byte ptr [ebp-8], 1
0040134E  |>  8B45 14       |mov     eax, [ebp+14]
00401351  |.  8B50 10       |mov     edx, [eax+10]
00401354  |.  8955 E4       |mov     [ebp-1C], edx
00401357  |.  8B50 0C       |mov     edx, [eax+C]
0040135A  |.  8955 E8       |mov     [ebp-18], edx
0040135D  |.  8B50 08       |mov     edx, [eax+8]
00401360  |.  8955 EC       |mov     [ebp-14], edx
00401363  |.  8B48 04       |mov     ecx, [eax+4]
00401366  |.  894D F0       |mov     [ebp-10], ecx
00401369  |.  8B08          |mov     ecx, [eax]
0040136B  |.  894D F4       |mov     [ebp-C], ecx
0040136E  |.  C1C1 05       |rol     ecx, 5
00401371  |.  3355 E8       |xor     edx, [ebp-18]
00401374  |.  2355 F0       |and     edx, [ebp-10]
00401377  |.  3355 E8       |xor     edx, [ebp-18]
0040137A  |.  0355 A4       |add     edx, [ebp-5C]
0040137D  |.  03D1          |add     edx, ecx
0040137F  |.  0355 E4       |add     edx, [ebp-1C]
00401382  |.  81C2 9979825A |add     edx, 5A827999 //sha的关键数据
00401388  |.  8955 E4       |mov     [ebp-1C], edx
0040138B  |.  8BCA          |mov     ecx, edx
0040138D  |.  8B55 F0       |mov     edx, [ebp-10]
00401390  |.  C1C2 1E       |rol     edx, 1E
00401393  |.  8955 F0       |mov     [ebp-10], edx
00401396  |.  C1C1 05       |rol     ecx, 5
00401399  |.  3355 EC       |xor     edx, [ebp-14]
0040139C  |.  2355 F4       |and     edx, [ebp-C]
0040139F  |.  3355 EC       |xor     edx, [ebp-14]
004013A2  |.  0355 A8       |add     edx, [ebp-58]
004013A5  |.  03D1          |add     edx, ecx
004013A7  |.  0355 E8       |add     edx, [ebp-18]
004013AA  |.  81C2 9979825A |add     edx, 5A827999
004013B0  |.  8955 E8       |mov     [ebp-18], edx
004013B3  |.  8BCA          |mov     ecx, edx
004013B5  |.  8B55 F4       |mov     edx, [ebp-C]
004013B8  |.  C1C2 1E       |rol     edx, 1E
004013BB  |.  8955 F4       |mov     [ebp-C], edx
004013BE  |.  C1C1 05       |rol     ecx, 5
004013C1  |.  3355 F0       |xor     edx, [ebp-10]
004013C4  |.  2355 E4       |and     edx, [ebp-1C]
004013C7  |.  3355 F0       |xor     edx, [ebp-10]
004013CA  |.  0355 AC       |add     edx, [ebp-54]
004013CD  |.  03D1          |add     edx, ecx
004013CF  |.  0355 EC       |add     edx, [ebp-14]
004013D2  |.  81C2 9979825A |add     edx, 5A827999
004013D8  |.  8955 EC       |mov     [ebp-14], edx
004013DB  |.  8BCA          |mov     ecx, edx
004013DD  |.  8B55 E4       |mov     edx, [ebp-1C]
004013E0  |.  C1C2 1E       |rol     edx, 1E
004013E3  |.  8955 E4       |mov     [ebp-1C], edx
004013E6  |.  C1C1 05       |rol     ecx, 5
004013E9  |.  3355 F4       |xor     edx, [ebp-C]
004013EC  |.  2355 E8       |and     edx, [ebp-18]
004013EF  |.  3355 F4       |xor     edx, [ebp-C]
004013F2  |.  0355 B0       |add     edx, [ebp-50]
004013F5  |.  03D1          |add     edx, ecx
004013F7  |.  0355 F0       |add     edx, [ebp-10]
004013FA  |.  81C2 9979825A |add     edx, 5A827999
00401400  |.  8955 F0       |mov     [ebp-10], edx
00401403  |.  8BCA          |mov     ecx, edx
00401405  |.  8B55 E8       |mov     edx, [ebp-18]
00401408  |.  C1C2 1E       |rol     edx, 1E
0040140B  |.  8955 E8       |mov     [ebp-18], edx
0040140E  |.  C1C1 05       |rol     ecx, 5
00401411  |.  3355 E4       |xor     edx, [ebp-1C]
00401414  |.  2355 EC       |and     edx, [ebp-14]
00401417  |.  3355 E4       |xor     edx, [ebp-1C]
0040141A  |.  0355 B4       |add     edx, [ebp-4C]
0040141D  |.  03D1          |add     edx, ecx
0040141F  |.  0355 F4       |add     edx, [ebp-C]
00401422  |.  81C2 9979825A |add     edx, 5A827999
00401428  |.  8955 F4       |mov     [ebp-C], edx
0040142B  |.  8BCA          |mov     ecx, edx
0040142D  |.  8B55 EC       |mov     edx, [ebp-14]
00401430  |.  C1C2 1E       |rol     edx, 1E
00401433  |.  8955 EC       |mov     [ebp-14], edx
00401436  |.  C1C1 05       |rol     ecx, 5
00401439  |.  3355 E8       |xor     edx, [ebp-18]
0040143C  |.  2355 F0       |and     edx, [ebp-10]
0040143F  |.  3355 E8       |xor     edx, [ebp-18]
00401442  |.  0355 B8       |add     edx, [ebp-48]
00401445  |.  03D1          |add     edx, ecx
00401447  |.  0355 E4       |add     edx, [ebp-1C]
0040144A  |.  81C2 9979825A |add     edx, 5A827999
00401450  |.  8955 E4       |mov     [ebp-1C], edx
00401453  |.  8BCA          |mov     ecx, edx
00401455  |.  8B55 F0       |mov     edx, [ebp-10]
00401458  |.  C1C2 1E       |rol     edx, 1E
0040145B  |.  8955 F0       |mov     [ebp-10], edx
0040145E  |.  C1C1 05       |rol     ecx, 5
00401461  |.  3355 EC       |xor     edx, [ebp-14]
00401464  |.  2355 F4       |and     edx, [ebp-C]
00401467  |.  3355 EC       |xor     edx, [ebp-14]
0040146A  |.  0355 BC       |add     edx, [ebp-44]
0040146D  |.  03D1          |add     edx, ecx
0040146F  |.  0355 E8       |add     edx, [ebp-18]
00401472  |.  81C2 9979825A |add     edx, 5A827999
00401478  |.  8955 E8       |mov     [ebp-18], edx
0040147B  |.  8BCA          |mov     ecx, edx
0040147D  |.  8B55 F4       |mov     edx, [ebp-C]
00401480  |.  C1C2 1E       |rol     edx, 1E
00401483  |.  8955 F4       |mov     [ebp-C], edx
00401486  |.  C1C1 05       |rol     ecx, 5
00401489  |.  3355 F0       |xor     edx, [ebp-10]
0040148C  |.  2355 E4       |and     edx, [ebp-1C]
0040148F  |.  3355 F0       |xor     edx, [ebp-10]
00401492  |.  0355 C0       |add     edx, [ebp-40]
00401495  |.  03D1          |add     edx, ecx
00401497  |.  0355 EC       |add     edx, [ebp-14]
0040149A  |.  81C2 9979825A |add     edx, 5A827999
004014A0  |.  8955 EC       |mov     [ebp-14], edx
004014A3  |.  8BCA          |mov     ecx, edx
004014A5  |.  8B55 E4       |mov     edx, [ebp-1C]
004014A8  |.  C1C2 1E       |rol     edx, 1E
004014AB  |.  8955 E4       |mov     [ebp-1C], edx
004014AE  |.  C1C1 05       |rol     ecx, 5
004014B1  |.  3355 F4       |xor     edx, [ebp-C]
004014B4  |.  2355 E8       |and     edx, [ebp-18]
004014B7  |.  3355 F4       |xor     edx, [ebp-C]
004014BA  |.  0355 C4       |add     edx, [ebp-3C]
004014BD  |.  03D1          |add     edx, ecx
004014BF  |.  0355 F0       |add     edx, [ebp-10]
004014C2  |.  81C2 9979825A |add     edx, 5A827999
004014C8  |.  8955 F0       |mov     [ebp-10], edx
004014CB  |.  8BCA          |mov     ecx, edx
004014CD  |.  8B55 E8       |mov     edx, [ebp-18]
004014D0  |.  C1C2 1E       |rol     edx, 1E
004014D3  |.  8955 E8       |mov     [ebp-18], edx
004014D6  |.  C1C1 05       |rol     ecx, 5
004014D9  |.  3355 E4       |xor     edx, [ebp-1C]
004014DC  |.  2355 EC       |and     edx, [ebp-14]
004014DF  |.  3355 E4       |xor     edx, [ebp-1C]
004014E2  |.  0355 C8       |add     edx, [ebp-38]
004014E5  |.  03D1          |add     edx, ecx
004014E7  |.  0355 F4       |add     edx, [ebp-C]
004014EA  |.  81C2 9979825A |add     edx, 5A827999
004014F0  |.  8955 F4       |mov     [ebp-C], edx
004014F3  |.  8BCA          |mov     ecx, edx
004014F5  |.  8B55 EC       |mov     edx, [ebp-14]
004014F8  |.  C1C2 1E       |rol     edx, 1E
004014FB  |.  8955 EC       |mov     [ebp-14], edx
004014FE  |.  C1C1 05       |rol     ecx, 5
00401501  |.  3355 E8       |xor     edx, [ebp-18]
00401504  |.  2355 F0       |and     edx, [ebp-10]
00401507  |.  3355 E8       |xor     edx, [ebp-18]
0040150A  |.  0355 CC       |add     edx, [ebp-34]
0040150D  |.  03D1          |add     edx, ecx
0040150F  |.  0355 E4       |add     edx, [ebp-1C]
00401512  |.  81C2 9979825A |add     edx, 5A827999
00401518  |.  8955 E4       |mov     [ebp-1C], edx
0040151B  |.  8BCA          |mov     ecx, edx
0040151D  |.  8B55 F0       |mov     edx, [ebp-10]
00401520  |.  C1C2 1E       |rol     edx, 1E
00401523  |.  8955 F0       |mov     [ebp-10], edx
00401526  |.  C1C1 05       |rol     ecx, 5
00401529  |.  3355 EC       |xor     edx, [ebp-14]
0040152C  |.  2355 F4       |and     edx, [ebp-C]
0040152F  |.  3355 EC       |xor     edx, [ebp-14]
00401532  |.  0355 D0       |add     edx, [ebp-30]
00401535  |.  03D1          |add     edx, ecx
00401537  |.  0355 E8       |add     edx, [ebp-18]
0040153A  |.  81C2 9979825A |add     edx, 5A827999
00401540  |.  8955 E8       |mov     [ebp-18], edx
00401543  |.  8BCA          |mov     ecx, edx
00401545  |.  8B55 F4       |mov     edx, [ebp-C]
00401548  |.  C1C2 1E       |rol     edx, 1E
0040154B  |.  8955 F4       |mov     [ebp-C], edx
0040154E  |.  C1C1 05       |rol     ecx, 5
00401551  |.  3355 F0       |xor     edx, [ebp-10]
00401554  |.  2355 E4       |and     edx, [ebp-1C]
00401557  |.  3355 F0       |xor     edx, [ebp-10]
0040155A  |.  0355 D4       |add     edx, [ebp-2C]
0040155D  |.  03D1          |add     edx, ecx
0040155F  |.  0355 EC       |add     edx, [ebp-14]
00401562  |.  81C2 9979825A |add     edx, 5A827999
00401568  |.  8955 EC       |mov     [ebp-14], edx
0040156B  |.  8BCA          |mov     ecx, edx
0040156D  |.  8B55 E4       |mov     edx, [ebp-1C]
00401570  |.  C1C2 1E       |rol     edx, 1E
00401573  |.  8955 E4       |mov     [ebp-1C], edx
00401576  |.  C1C1 05       |rol     ecx, 5
00401579  |.  3355 F4       |xor     edx, [ebp-C]
0040157C  |.  2355 E8       |and     edx, [ebp-18]
0040157F  |.  3355 F4       |xor     edx, [ebp-C]
00401582  |.  0355 D8       |add     edx, [ebp-28]
00401585  |.  03D1          |add     edx, ecx
00401587  |.  0355 F0       |add     edx, [ebp-10]
0040158A  |.  81C2 9979825A |add     edx, 5A827999
00401590  |.  8955 F0       |mov     [ebp-10], edx
00401593  |.  8BCA          |mov     ecx, edx
00401595  |.  8B55 E8       |mov     edx, [ebp-18]
00401598  |.  C1C2 1E       |rol     edx, 1E
0040159B  |.  8955 E8       |mov     [ebp-18], edx
0040159E  |.  C1C1 05       |rol     ecx, 5
004015A1  |.  3355 E4       |xor     edx, [ebp-1C]
004015A4  |.  2355 EC       |and     edx, [ebp-14]
004015A7  |.  3355 E4       |xor     edx, [ebp-1C]
004015AA  |.  0355 DC       |add     edx, [ebp-24]
004015AD  |.  03D1          |add     edx, ecx
004015AF  |.  0355 F4       |add     edx, [ebp-C]
004015B2  |.  81C2 9979825A |add     edx, 5A827999
004015B8  |.  8955 F4       |mov     [ebp-C], edx
004015BB  |.  8BCA          |mov     ecx, edx
004015BD  |.  8B55 EC       |mov     edx, [ebp-14]
004015C0  |.  C1C2 1E       |rol     edx, 1E
004015C3  |.  8955 EC       |mov     [ebp-14], edx
004015C6  |.  C1C1 05       |rol     ecx, 5
004015C9  |.  3355 E8       |xor     edx, [ebp-18]
004015CC  |.  2355 F0       |and     edx, [ebp-10]
004015CF  |.  3355 E8       |xor     edx, [ebp-18]
004015D2  |.  0355 E0       |add     edx, [ebp-20]
004015D5  |.  03D1          |add     edx, ecx
004015D7  |.  0355 E4       |add     edx, [ebp-1C]
004015DA  |.  81C2 9979825A |add     edx, 5A827999
004015E0  |.  8955 E4       |mov     [ebp-1C], edx
004015E3  |.  8BCA          |mov     ecx, edx
004015E5  |.  8B55 F0       |mov     edx, [ebp-10]
004015E8  |.  C1C2 1E       |rol     edx, 1E
004015EB  |.  8955 F0       |mov     [ebp-10], edx
004015EE  |.  33DB          |xor     ebx, ebx
004015F0  |>  80C3 08       |/add     bl, 8
004015F3  |.  80E3 3F       ||and     bl, 3F
004015F6  |.  36:8B442B A4  ||mov     eax, ss:[ebx+ebp-5C]
004015FB  |.  80C3 18       ||add     bl, 18
004015FE  |.  80E3 3F       ||and     bl, 3F
00401601  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401606  |.  80C3 14       ||add     bl, 14
00401609  |.  80E3 3F       ||and     bl, 3F
0040160C  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401611  |.  80EB 34       ||sub     bl, 34
00401614  |.  80E3 3F       ||and     bl, 3F
00401617  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
0040161C  |.  D1C0          ||rol     eax, 1
0040161E  |.  36:89442B A4  ||mov     ss:[ebx+ebp-5C], eax
00401623  |.  80C3 04       ||add     bl, 4
00401626  |.  F6C3 3F       ||test    bl, 3F
00401629  |.^ 75 C5         |\jnz     short 004015F0
//这一段是轮换代码,见注册机
0040162B  |.  C1C1 05       |rol     ecx, 5
0040162E  |.  3355 EC       |xor     edx, [ebp-14]
00401631  |.  2355 F4       |and     edx, [ebp-C]
00401634  |.  3355 EC       |xor     edx, [ebp-14]
00401637  |.  0355 A4       |add     edx, [ebp-5C]
0040163A  |.  03D1          |add     edx, ecx
0040163C  |.  0355 E8       |add     edx, [ebp-18]
0040163F  |.  81C2 9979825A |add     edx, 5A827999
00401645  |.  8955 E8       |mov     [ebp-18], edx
00401648  |.  8BCA          |mov     ecx, edx
0040164A  |.  8B55 F4       |mov     edx, [ebp-C]
0040164D  |.  C1C2 1E       |rol     edx, 1E
00401650  |.  8955 F4       |mov     [ebp-C], edx
00401653  |.  C1C1 05       |rol     ecx, 5
00401656  |.  3355 F0       |xor     edx, [ebp-10]
00401659  |.  2355 E4       |and     edx, [ebp-1C]
0040165C  |.  3355 F0       |xor     edx, [ebp-10]
0040165F  |.  0355 A8       |add     edx, [ebp-58]
00401662  |.  03D1          |add     edx, ecx
00401664  |.  0355 EC       |add     edx, [ebp-14]
00401667  |.  81C2 9979825A |add     edx, 5A827999
0040166D  |.  8955 EC       |mov     [ebp-14], edx
00401670  |.  8BCA          |mov     ecx, edx
00401672  |.  8B55 E4       |mov     edx, [ebp-1C]
00401675  |.  C1C2 1E       |rol     edx, 1E
00401678  |.  8955 E4       |mov     [ebp-1C], edx
0040167B  |.  C1C1 05       |rol     ecx, 5
0040167E  |.  3355 F4       |xor     edx, [ebp-C]
00401681  |.  2355 E8       |and     edx, [ebp-18]
00401684  |.  3355 F4       |xor     edx, [ebp-C]
00401687  |.  0355 AC       |add     edx, [ebp-54]
0040168A  |.  03D1          |add     edx, ecx
0040168C  |.  0355 F0       |add     edx, [ebp-10]
0040168F  |.  81C2 9979825A |add     edx, 5A827999
00401695  |.  8955 F0       |mov     [ebp-10], edx
00401698  |.  8BCA          |mov     ecx, edx
0040169A  |.  8B55 E8       |mov     edx, [ebp-18]
0040169D  |.  C1C2 1E       |rol     edx, 1E
004016A0  |.  8955 E8       |mov     [ebp-18], edx
004016A3  |.  C1C1 05       |rol     ecx, 5
004016A6  |.  3355 E4       |xor     edx, [ebp-1C]
004016A9  |.  2355 EC       |and     edx, [ebp-14]
004016AC  |.  3355 E4       |xor     edx, [ebp-1C]
004016AF  |.  0355 B0       |add     edx, [ebp-50]
004016B2  |.  03D1          |add     edx, ecx
004016B4  |.  0355 F4       |add     edx, [ebp-C]
004016B7  |.  81C2 9979825A |add     edx, 5A827999
004016BD  |.  8955 F4       |mov     [ebp-C], edx
004016C0  |.  8BCA          |mov     ecx, edx
004016C2  |.  8B55 EC       |mov     edx, [ebp-14]
004016C5  |.  C1C2 1E       |rol     edx, 1E
004016C8  |.  8955 EC       |mov     [ebp-14], edx
004016CB  |.  C1C1 05       |rol     ecx, 5
004016CE  |.  3355 E8       |xor     edx, [ebp-18]
004016D1  |.  3355 F0       |xor     edx, [ebp-10]
004016D4  |.  0355 B4       |add     edx, [ebp-4C]
004016D7  |.  03D1          |add     edx, ecx
004016D9  |.  0355 E4       |add     edx, [ebp-1C]
004016DC  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004016E2  |.  8955 E4       |mov     [ebp-1C], edx
004016E5  |.  8BCA          |mov     ecx, edx
004016E7  |.  8B55 F0       |mov     edx, [ebp-10]
004016EA  |.  C1C2 1E       |rol     edx, 1E
004016ED  |.  8955 F0       |mov     [ebp-10], edx
004016F0  |.  C1C1 05       |rol     ecx, 5
004016F3  |.  3355 EC       |xor     edx, [ebp-14]
004016F6  |.  3355 F4       |xor     edx, [ebp-C]
004016F9  |.  0355 B8       |add     edx, [ebp-48]
004016FC  |.  03D1          |add     edx, ecx
004016FE  |.  0355 E8       |add     edx, [ebp-18]
00401701  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1 //sha的关键数据
00401707  |.  8955 E8       |mov     [ebp-18], edx
0040170A  |.  8BCA          |mov     ecx, edx
0040170C  |.  8B55 F4       |mov     edx, [ebp-C]
0040170F  |.  C1C2 1E       |rol     edx, 1E
00401712  |.  8955 F4       |mov     [ebp-C], edx
00401715  |.  C1C1 05       |rol     ecx, 5
00401718  |.  3355 F0       |xor     edx, [ebp-10]
0040171B  |.  3355 E4       |xor     edx, [ebp-1C]
0040171E  |.  0355 BC       |add     edx, [ebp-44]
00401721  |.  03D1          |add     edx, ecx
00401723  |.  0355 EC       |add     edx, [ebp-14]
00401726  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040172C  |.  8955 EC       |mov     [ebp-14], edx
0040172F  |.  8BCA          |mov     ecx, edx
00401731  |.  8B55 E4       |mov     edx, [ebp-1C]
00401734  |.  C1C2 1E       |rol     edx, 1E
00401737  |.  8955 E4       |mov     [ebp-1C], edx
0040173A  |.  C1C1 05       |rol     ecx, 5
0040173D  |.  3355 F4       |xor     edx, [ebp-C]
00401740  |.  3355 E8       |xor     edx, [ebp-18]
00401743  |.  0355 C0       |add     edx, [ebp-40]
00401746  |.  03D1          |add     edx, ecx
00401748  |.  0355 F0       |add     edx, [ebp-10]
0040174B  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401751  |.  8955 F0       |mov     [ebp-10], edx
00401754  |.  8BCA          |mov     ecx, edx
00401756  |.  8B55 E8       |mov     edx, [ebp-18]
00401759  |.  C1C2 1E       |rol     edx, 1E
0040175C  |.  8955 E8       |mov     [ebp-18], edx
0040175F  |.  C1C1 05       |rol     ecx, 5
00401762  |.  3355 E4       |xor     edx, [ebp-1C]
00401765  |.  3355 EC       |xor     edx, [ebp-14]
00401768  |.  0355 C4       |add     edx, [ebp-3C]
0040176B  |.  03D1          |add     edx, ecx
0040176D  |.  0355 F4       |add     edx, [ebp-C]
00401770  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401776  |.  8955 F4       |mov     [ebp-C], edx
00401779  |.  8BCA          |mov     ecx, edx
0040177B  |.  8B55 EC       |mov     edx, [ebp-14]
0040177E  |.  C1C2 1E       |rol     edx, 1E
00401781  |.  8955 EC       |mov     [ebp-14], edx
00401784  |.  C1C1 05       |rol     ecx, 5
00401787  |.  3355 E8       |xor     edx, [ebp-18]
0040178A  |.  3355 F0       |xor     edx, [ebp-10]
0040178D  |.  0355 C8       |add     edx, [ebp-38]
00401790  |.  03D1          |add     edx, ecx
00401792  |.  0355 E4       |add     edx, [ebp-1C]
00401795  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040179B  |.  8955 E4       |mov     [ebp-1C], edx
0040179E  |.  8BCA          |mov     ecx, edx
004017A0  |.  8B55 F0       |mov     edx, [ebp-10]
004017A3  |.  C1C2 1E       |rol     edx, 1E
004017A6  |.  8955 F0       |mov     [ebp-10], edx
004017A9  |.  C1C1 05       |rol     ecx, 5
004017AC  |.  3355 EC       |xor     edx, [ebp-14]
004017AF  |.  3355 F4       |xor     edx, [ebp-C]
004017B2  |.  0355 CC       |add     edx, [ebp-34]
004017B5  |.  03D1          |add     edx, ecx
004017B7  |.  0355 E8       |add     edx, [ebp-18]
004017BA  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004017C0  |.  8955 E8       |mov     [ebp-18], edx
004017C3  |.  8BCA          |mov     ecx, edx
004017C5  |.  8B55 F4       |mov     edx, [ebp-C]
004017C8  |.  C1C2 1E       |rol     edx, 1E
004017CB  |.  8955 F4       |mov     [ebp-C], edx
004017CE  |.  C1C1 05       |rol     ecx, 5
004017D1  |.  3355 F0       |xor     edx, [ebp-10]
004017D4  |.  3355 E4       |xor     edx, [ebp-1C]
004017D7  |.  0355 D0       |add     edx, [ebp-30]
004017DA  |.  03D1          |add     edx, ecx
004017DC  |.  0355 EC       |add     edx, [ebp-14]
004017DF  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004017E5  |.  8955 EC       |mov     [ebp-14], edx
004017E8  |.  8BCA          |mov     ecx, edx
004017EA  |.  8B55 E4       |mov     edx, [ebp-1C]
004017ED  |.  C1C2 1E       |rol     edx, 1E
004017F0  |.  8955 E4       |mov     [ebp-1C], edx
004017F3  |.  C1C1 05       |rol     ecx, 5
004017F6  |.  3355 F4       |xor     edx, [ebp-C]
004017F9  |.  3355 E8       |xor     edx, [ebp-18]
004017FC  |.  0355 D4       |add     edx, [ebp-2C]
004017FF  |.  03D1          |add     edx, ecx
00401801  |.  0355 F0       |add     edx, [ebp-10]
00401804  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040180A  |.  8955 F0       |mov     [ebp-10], edx
0040180D  |.  8BCA          |mov     ecx, edx
0040180F  |.  8B55 E8       |mov     edx, [ebp-18]
00401812  |.  C1C2 1E       |rol     edx, 1E
00401815  |.  8955 E8       |mov     [ebp-18], edx
00401818  |.  C1C1 05       |rol     ecx, 5
0040181B  |.  3355 E4       |xor     edx, [ebp-1C]
0040181E  |.  3355 EC       |xor     edx, [ebp-14]
00401821  |.  0355 D8       |add     edx, [ebp-28]
00401824  |.  03D1          |add     edx, ecx
00401826  |.  0355 F4       |add     edx, [ebp-C]
00401829  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040182F  |.  8955 F4       |mov     [ebp-C], edx
00401832  |.  8BCA          |mov     ecx, edx
00401834  |.  8B55 EC       |mov     edx, [ebp-14]
00401837  |.  C1C2 1E       |rol     edx, 1E
0040183A  |.  8955 EC       |mov     [ebp-14], edx
0040183D  |.  C1C1 05       |rol     ecx, 5
00401840  |.  3355 E8       |xor     edx, [ebp-18]
00401843  |.  3355 F0       |xor     edx, [ebp-10]
00401846  |.  0355 DC       |add     edx, [ebp-24]
00401849  |.  03D1          |add     edx, ecx
0040184B  |.  0355 E4       |add     edx, [ebp-1C]
0040184E  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401854  |.  8955 E4       |mov     [ebp-1C], edx
00401857  |.  8BCA          |mov     ecx, edx
00401859  |.  8B55 F0       |mov     edx, [ebp-10]
0040185C  |.  C1C2 1E       |rol     edx, 1E
0040185F  |.  8955 F0       |mov     [ebp-10], edx
00401862  |.  C1C1 05       |rol     ecx, 5
00401865  |.  3355 EC       |xor     edx, [ebp-14]
00401868  |.  3355 F4       |xor     edx, [ebp-C]
0040186B  |.  0355 E0       |add     edx, [ebp-20]
0040186E  |.  03D1          |add     edx, ecx
00401870  |.  0355 E8       |add     edx, [ebp-18]
00401873  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401879  |.  8955 E8       |mov     [ebp-18], edx
0040187C  |.  8BCA          |mov     ecx, edx
0040187E  |.  8B55 F4       |mov     edx, [ebp-C]
00401881  |.  C1C2 1E       |rol     edx, 1E
00401884  |.  8955 F4       |mov     [ebp-C], edx
00401887  |.  33DB          |xor     ebx, ebx
00401889  |>  80C3 08       |/add     bl, 8
0040188C  |.  80E3 3F       ||and     bl, 3F
0040188F  |.  36:8B442B A4  ||mov     eax, ss:[ebx+ebp-5C]
00401894  |.  80C3 18       ||add     bl, 18
00401897  |.  80E3 3F       ||and     bl, 3F
0040189A  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
0040189F  |.  80C3 14       ||add     bl, 14
004018A2  |.  80E3 3F       ||and     bl, 3F
004018A5  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
004018AA  |.  80EB 34       ||sub     bl, 34
004018AD  |.  80E3 3F       ||and     bl, 3F
004018B0  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
004018B5  |.  D1C0          ||rol     eax, 1
004018B7  |.  36:89442B A4  ||mov     ss:[ebx+ebp-5C], eax
004018BC  |.  80C3 04       ||add     bl, 4
004018BF  |.  F6C3 3F       ||test    bl, 3F
004018C2  |.^ 75 C5         |\jnz     short 00401889
004018C4  |.  C1C1 05       |rol     ecx, 5
004018C7  |.  3355 F0       |xor     edx, [ebp-10]
004018CA  |.  3355 E4       |xor     edx, [ebp-1C]
004018CD  |.  0355 A4       |add     edx, [ebp-5C]
004018D0  |.  03D1          |add     edx, ecx
004018D2  |.  0355 EC       |add     edx, [ebp-14]
004018D5  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004018DB  |.  8955 EC       |mov     [ebp-14], edx
004018DE  |.  8BCA          |mov     ecx, edx
004018E0  |.  8B55 E4       |mov     edx, [ebp-1C]
004018E3  |.  C1C2 1E       |rol     edx, 1E
004018E6  |.  8955 E4       |mov     [ebp-1C], edx
004018E9  |.  C1C1 05       |rol     ecx, 5
004018EC  |.  3355 F4       |xor     edx, [ebp-C]
004018EF  |.  3355 E8       |xor     edx, [ebp-18]
004018F2  |.  0355 A8       |add     edx, [ebp-58]
004018F5  |.  03D1          |add     edx, ecx
004018F7  |.  0355 F0       |add     edx, [ebp-10]
004018FA  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401900  |.  8955 F0       |mov     [ebp-10], edx
00401903  |.  8BCA          |mov     ecx, edx
00401905  |.  8B55 E8       |mov     edx, [ebp-18]
00401908  |.  C1C2 1E       |rol     edx, 1E
0040190B  |.  8955 E8       |mov     [ebp-18], edx
0040190E  |.  C1C1 05       |rol     ecx, 5
00401911  |.  3355 E4       |xor     edx, [ebp-1C]
00401914  |.  3355 EC       |xor     edx, [ebp-14]
00401917  |.  0355 AC       |add     edx, [ebp-54]
0040191A  |.  03D1          |add     edx, ecx
0040191C  |.  0355 F4       |add     edx, [ebp-C]
0040191F  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401925  |.  8955 F4       |mov     [ebp-C], edx
00401928  |.  8BCA          |mov     ecx, edx
0040192A  |.  8B55 EC       |mov     edx, [ebp-14]
0040192D  |.  C1C2 1E       |rol     edx, 1E
00401930  |.  8955 EC       |mov     [ebp-14], edx
00401933  |.  C1C1 05       |rol     ecx, 5
00401936  |.  3355 E8       |xor     edx, [ebp-18]
00401939  |.  3355 F0       |xor     edx, [ebp-10]
0040193C  |.  0355 B0       |add     edx, [ebp-50]
0040193F  |.  03D1          |add     edx, ecx
00401941  |.  0355 E4       |add     edx, [ebp-1C]
00401944  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040194A  |.  8955 E4       |mov     [ebp-1C], edx
0040194D  |.  8BCA          |mov     ecx, edx
0040194F  |.  8B55 F0       |mov     edx, [ebp-10]
00401952  |.  C1C2 1E       |rol     edx, 1E
00401955  |.  8955 F0       |mov     [ebp-10], edx
00401958  |.  C1C1 05       |rol     ecx, 5
0040195B  |.  3355 EC       |xor     edx, [ebp-14]
0040195E  |.  3355 F4       |xor     edx, [ebp-C]
00401961  |.  0355 B4       |add     edx, [ebp-4C]
00401964  |.  03D1          |add     edx, ecx
00401966  |.  0355 E8       |add     edx, [ebp-18]
00401969  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
0040196F  |.  8955 E8       |mov     [ebp-18], edx
00401972  |.  8BCA          |mov     ecx, edx
00401974  |.  8B55 F4       |mov     edx, [ebp-C]
00401977  |.  C1C2 1E       |rol     edx, 1E
0040197A  |.  8955 F4       |mov     [ebp-C], edx
0040197D  |.  C1C1 05       |rol     ecx, 5
00401980  |.  3355 F0       |xor     edx, [ebp-10]
00401983  |.  3355 E4       |xor     edx, [ebp-1C]
00401986  |.  0355 B8       |add     edx, [ebp-48]
00401989  |.  03D1          |add     edx, ecx
0040198B  |.  0355 EC       |add     edx, [ebp-14]
0040198E  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
00401994  |.  8955 EC       |mov     [ebp-14], edx
00401997  |.  8BCA          |mov     ecx, edx
00401999  |.  8B55 E4       |mov     edx, [ebp-1C]
0040199C  |.  C1C2 1E       |rol     edx, 1E
0040199F  |.  8955 E4       |mov     [ebp-1C], edx
004019A2  |.  C1C1 05       |rol     ecx, 5
004019A5  |.  3355 F4       |xor     edx, [ebp-C]
004019A8  |.  3355 E8       |xor     edx, [ebp-18]
004019AB  |.  0355 BC       |add     edx, [ebp-44]
004019AE  |.  03D1          |add     edx, ecx
004019B0  |.  0355 F0       |add     edx, [ebp-10]
004019B3  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004019B9  |.  8955 F0       |mov     [ebp-10], edx
004019BC  |.  8BCA          |mov     ecx, edx
004019BE  |.  8B55 E8       |mov     edx, [ebp-18]
004019C1  |.  C1C2 1E       |rol     edx, 1E
004019C4  |.  8955 E8       |mov     [ebp-18], edx
004019C7  |.  C1C1 05       |rol     ecx, 5
004019CA  |.  3355 E4       |xor     edx, [ebp-1C]
004019CD  |.  3355 EC       |xor     edx, [ebp-14]
004019D0  |.  0355 C0       |add     edx, [ebp-40]
004019D3  |.  03D1          |add     edx, ecx
004019D5  |.  0355 F4       |add     edx, [ebp-C]
004019D8  |.  81C2 A1EBD96E |add     edx, 6ED9EBA1
004019DE  |.  8955 F4       |mov     [ebp-C], edx
004019E1  |.  8BCA          |mov     ecx, edx
004019E3  |.  8B55 EC       |mov     edx, [ebp-14]
004019E6  |.  C1C2 1E       |rol     edx, 1E
004019E9  |.  8955 EC       |mov     [ebp-14], edx
004019EC  |.  C1C1 05       |rol     ecx, 5
004019EF  |.  8B45 F0       |mov     eax, [ebp-10]
004019F2  |.  0BD0          |or      edx, eax
004019F4  |.  2355 E8       |and     edx, [ebp-18]
004019F7  |.  2345 EC       |and     eax, [ebp-14]
004019FA  |.  0BD0          |or      edx, eax
004019FC  |.  0355 C4       |add     edx, [ebp-3C]
004019FF  |.  03D1          |add     edx, ecx
00401A01  |.  0355 E4       |add     edx, [ebp-1C]
00401A04  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC //sha的关键数据
00401A0A  |.  8955 E4       |mov     [ebp-1C], edx
00401A0D  |.  8BCA          |mov     ecx, edx
00401A0F  |.  8B55 F0       |mov     edx, [ebp-10]
00401A12  |.  C1C2 1E       |rol     edx, 1E
00401A15  |.  8955 F0       |mov     [ebp-10], edx
00401A18  |.  C1C1 05       |rol     ecx, 5
00401A1B  |.  8B45 F4       |mov     eax, [ebp-C]
00401A1E  |.  0BD0          |or      edx, eax
00401A20  |.  2355 EC       |and     edx, [ebp-14]
00401A23  |.  2345 F0       |and     eax, [ebp-10]
00401A26  |.  0BD0          |or      edx, eax
00401A28  |.  0355 C8       |add     edx, [ebp-38]
00401A2B  |.  03D1          |add     edx, ecx
00401A2D  |.  0355 E8       |add     edx, [ebp-18]
00401A30  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401A36  |.  8955 E8       |mov     [ebp-18], edx
00401A39  |.  8BCA          |mov     ecx, edx
00401A3B  |.  8B55 F4       |mov     edx, [ebp-C]
00401A3E  |.  C1C2 1E       |rol     edx, 1E
00401A41  |.  8955 F4       |mov     [ebp-C], edx
00401A44  |.  C1C1 05       |rol     ecx, 5
00401A47  |.  8B45 E4       |mov     eax, [ebp-1C]
00401A4A  |.  0BD0          |or      edx, eax
00401A4C  |.  2355 F0       |and     edx, [ebp-10]
00401A4F  |.  2345 F4       |and     eax, [ebp-C]
00401A52  |.  0BD0          |or      edx, eax
00401A54  |.  0355 CC       |add     edx, [ebp-34]
00401A57  |.  03D1          |add     edx, ecx
00401A59  |.  0355 EC       |add     edx, [ebp-14]
00401A5C  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401A62  |.  8955 EC       |mov     [ebp-14], edx
00401A65  |.  8BCA          |mov     ecx, edx
00401A67  |.  8B55 E4       |mov     edx, [ebp-1C]
00401A6A  |.  C1C2 1E       |rol     edx, 1E
00401A6D  |.  8955 E4       |mov     [ebp-1C], edx
00401A70  |.  C1C1 05       |rol     ecx, 5
00401A73  |.  8B45 E8       |mov     eax, [ebp-18]
00401A76  |.  0BD0          |or      edx, eax
00401A78  |.  2355 F4       |and     edx, [ebp-C]
00401A7B  |.  2345 E4       |and     eax, [ebp-1C]
00401A7E  |.  0BD0          |or      edx, eax
00401A80  |.  0355 D0       |add     edx, [ebp-30]
00401A83  |.  03D1          |add     edx, ecx
00401A85  |.  0355 F0       |add     edx, [ebp-10]
00401A88  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401A8E  |.  8955 F0       |mov     [ebp-10], edx
00401A91  |.  8BCA          |mov     ecx, edx
00401A93  |.  8B55 E8       |mov     edx, [ebp-18]
00401A96  |.  C1C2 1E       |rol     edx, 1E
00401A99  |.  8955 E8       |mov     [ebp-18], edx
00401A9C  |.  C1C1 05       |rol     ecx, 5
00401A9F  |.  8B45 EC       |mov     eax, [ebp-14]
00401AA2  |.  0BD0          |or      edx, eax
00401AA4  |.  2355 E4       |and     edx, [ebp-1C]
00401AA7  |.  2345 E8       |and     eax, [ebp-18]
00401AAA  |.  0BD0          |or      edx, eax
00401AAC  |.  0355 D4       |add     edx, [ebp-2C]
00401AAF  |.  03D1          |add     edx, ecx
00401AB1  |.  0355 F4       |add     edx, [ebp-C]
00401AB4  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401ABA  |.  8955 F4       |mov     [ebp-C], edx
00401ABD  |.  8BCA          |mov     ecx, edx
00401ABF  |.  8B55 EC       |mov     edx, [ebp-14]
00401AC2  |.  C1C2 1E       |rol     edx, 1E
00401AC5  |.  8955 EC       |mov     [ebp-14], edx
00401AC8  |.  C1C1 05       |rol     ecx, 5
00401ACB  |.  8B45 F0       |mov     eax, [ebp-10]
00401ACE  |.  0BD0          |or      edx, eax
00401AD0  |.  2355 E8       |and     edx, [ebp-18]
00401AD3  |.  2345 EC       |and     eax, [ebp-14]
00401AD6  |.  0BD0          |or      edx, eax
00401AD8  |.  0355 D8       |add     edx, [ebp-28]
00401ADB  |.  03D1          |add     edx, ecx
00401ADD  |.  0355 E4       |add     edx, [ebp-1C]
00401AE0  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401AE6  |.  8955 E4       |mov     [ebp-1C], edx
00401AE9  |.  8BCA          |mov     ecx, edx
00401AEB  |.  8B55 F0       |mov     edx, [ebp-10]
00401AEE  |.  C1C2 1E       |rol     edx, 1E
00401AF1  |.  8955 F0       |mov     [ebp-10], edx
00401AF4  |.  C1C1 05       |rol     ecx, 5
00401AF7  |.  8B45 F4       |mov     eax, [ebp-C]
00401AFA  |.  0BD0          |or      edx, eax
00401AFC  |.  2355 EC       |and     edx, [ebp-14]
00401AFF  |.  2345 F0       |and     eax, [ebp-10]
00401B02  |.  0BD0          |or      edx, eax
00401B04  |.  0355 DC       |add     edx, [ebp-24]
00401B07  |.  03D1          |add     edx, ecx
00401B09  |.  0355 E8       |add     edx, [ebp-18]
00401B0C  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401B12  |.  8955 E8       |mov     [ebp-18], edx
00401B15  |.  8BCA          |mov     ecx, edx
00401B17  |.  8B55 F4       |mov     edx, [ebp-C]
00401B1A  |.  C1C2 1E       |rol     edx, 1E
00401B1D  |.  8955 F4       |mov     [ebp-C], edx
00401B20  |.  C1C1 05       |rol     ecx, 5
00401B23  |.  8B45 E4       |mov     eax, [ebp-1C]
00401B26  |.  0BD0          |or      edx, eax
00401B28  |.  2355 F0       |and     edx, [ebp-10]
00401B2B  |.  2345 F4       |and     eax, [ebp-C]
00401B2E  |.  0BD0          |or      edx, eax
00401B30  |.  0355 E0       |add     edx, [ebp-20]
00401B33  |.  03D1          |add     edx, ecx
00401B35  |.  0355 EC       |add     edx, [ebp-14]
00401B38  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401B3E  |.  8955 EC       |mov     [ebp-14], edx
00401B41  |.  8BCA          |mov     ecx, edx
00401B43  |.  8B55 E4       |mov     edx, [ebp-1C]
00401B46  |.  C1C2 1E       |rol     edx, 1E
00401B49  |.  8955 E4       |mov     [ebp-1C], edx
00401B4C  |.  33DB          |xor     ebx, ebx
00401B4E  |>  80C3 08       |/add     bl, 8
00401B51  |.  80E3 3F       ||and     bl, 3F
00401B54  |.  36:8B442B A4  ||mov     eax, ss:[ebx+ebp-5C]
00401B59  |.  80C3 18       ||add     bl, 18
00401B5C  |.  80E3 3F       ||and     bl, 3F
00401B5F  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401B64  |.  80C3 14       ||add     bl, 14
00401B67  |.  80E3 3F       ||and     bl, 3F
00401B6A  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401B6F  |.  80EB 34       ||sub     bl, 34
00401B72  |.  80E3 3F       ||and     bl, 3F
00401B75  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401B7A  |.  D1C0          ||rol     eax, 1
00401B7C  |.  36:89442B A4  ||mov     ss:[ebx+ebp-5C], eax
00401B81  |.  80C3 04       ||add     bl, 4
00401B84  |.  F6C3 3F       ||test    bl, 3F
00401B87  |.^ 75 C5         |\jnz     short 00401B4E
00401B89  |.  C1C1 05       |rol     ecx, 5
00401B8C  |.  8B45 E8       |mov     eax, [ebp-18]
00401B8F  |.  0BD0          |or      edx, eax
00401B91  |.  2355 F4       |and     edx, [ebp-C]
00401B94  |.  2345 E4       |and     eax, [ebp-1C]
00401B97  |.  0BD0          |or      edx, eax
00401B99  |.  0355 A4       |add     edx, [ebp-5C]
00401B9C  |.  03D1          |add     edx, ecx
00401B9E  |.  0355 F0       |add     edx, [ebp-10]
00401BA1  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401BA7  |.  8955 F0       |mov     [ebp-10], edx
00401BAA  |.  8BCA          |mov     ecx, edx
00401BAC  |.  8B55 E8       |mov     edx, [ebp-18]
00401BAF  |.  C1C2 1E       |rol     edx, 1E
00401BB2  |.  8955 E8       |mov     [ebp-18], edx
00401BB5  |.  C1C1 05       |rol     ecx, 5
00401BB8  |.  8B45 EC       |mov     eax, [ebp-14]
00401BBB  |.  0BD0          |or      edx, eax
00401BBD  |.  2355 E4       |and     edx, [ebp-1C]
00401BC0  |.  2345 E8       |and     eax, [ebp-18]
00401BC3  |.  0BD0          |or      edx, eax
00401BC5  |.  0355 A8       |add     edx, [ebp-58]
00401BC8  |.  03D1          |add     edx, ecx
00401BCA  |.  0355 F4       |add     edx, [ebp-C]
00401BCD  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401BD3  |.  8955 F4       |mov     [ebp-C], edx
00401BD6  |.  8BCA          |mov     ecx, edx
00401BD8  |.  8B55 EC       |mov     edx, [ebp-14]
00401BDB  |.  C1C2 1E       |rol     edx, 1E
00401BDE  |.  8955 EC       |mov     [ebp-14], edx
00401BE1  |.  C1C1 05       |rol     ecx, 5
00401BE4  |.  8B45 F0       |mov     eax, [ebp-10]
00401BE7  |.  0BD0          |or      edx, eax
00401BE9  |.  2355 E8       |and     edx, [ebp-18]
00401BEC  |.  2345 EC       |and     eax, [ebp-14]
00401BEF  |.  0BD0          |or      edx, eax
00401BF1  |.  0355 AC       |add     edx, [ebp-54]
00401BF4  |.  03D1          |add     edx, ecx
00401BF6  |.  0355 E4       |add     edx, [ebp-1C]
00401BF9  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401BFF  |.  8955 E4       |mov     [ebp-1C], edx
00401C02  |.  8BCA          |mov     ecx, edx
00401C04  |.  8B55 F0       |mov     edx, [ebp-10]
00401C07  |.  C1C2 1E       |rol     edx, 1E
00401C0A  |.  8955 F0       |mov     [ebp-10], edx
00401C0D  |.  C1C1 05       |rol     ecx, 5
00401C10  |.  8B45 F4       |mov     eax, [ebp-C]
00401C13  |.  0BD0          |or      edx, eax
00401C15  |.  2355 EC       |and     edx, [ebp-14]
00401C18  |.  2345 F0       |and     eax, [ebp-10]
00401C1B  |.  0BD0          |or      edx, eax
00401C1D  |.  0355 B0       |add     edx, [ebp-50]
00401C20  |.  03D1          |add     edx, ecx
00401C22  |.  0355 E8       |add     edx, [ebp-18]
00401C25  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401C2B  |.  8955 E8       |mov     [ebp-18], edx
00401C2E  |.  8BCA          |mov     ecx, edx
00401C30  |.  8B55 F4       |mov     edx, [ebp-C]
00401C33  |.  C1C2 1E       |rol     edx, 1E
00401C36  |.  8955 F4       |mov     [ebp-C], edx
00401C39  |.  C1C1 05       |rol     ecx, 5
00401C3C  |.  8B45 E4       |mov     eax, [ebp-1C]
00401C3F  |.  0BD0          |or      edx, eax
00401C41  |.  2355 F0       |and     edx, [ebp-10]
00401C44  |.  2345 F4       |and     eax, [ebp-C]
00401C47  |.  0BD0          |or      edx, eax
00401C49  |.  0355 B4       |add     edx, [ebp-4C]
00401C4C  |.  03D1          |add     edx, ecx
00401C4E  |.  0355 EC       |add     edx, [ebp-14]
00401C51  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401C57  |.  8955 EC       |mov     [ebp-14], edx
00401C5A  |.  8BCA          |mov     ecx, edx
00401C5C  |.  8B55 E4       |mov     edx, [ebp-1C]
00401C5F  |.  C1C2 1E       |rol     edx, 1E
00401C62  |.  8955 E4       |mov     [ebp-1C], edx
00401C65  |.  C1C1 05       |rol     ecx, 5
00401C68  |.  8B45 E8       |mov     eax, [ebp-18]
00401C6B  |.  0BD0          |or      edx, eax
00401C6D  |.  2355 F4       |and     edx, [ebp-C]
00401C70  |.  2345 E4       |and     eax, [ebp-1C]
00401C73  |.  0BD0          |or      edx, eax
00401C75  |.  0355 B8       |add     edx, [ebp-48]
00401C78  |.  03D1          |add     edx, ecx
00401C7A  |.  0355 F0       |add     edx, [ebp-10]
00401C7D  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401C83  |.  8955 F0       |mov     [ebp-10], edx
00401C86  |.  8BCA          |mov     ecx, edx
00401C88  |.  8B55 E8       |mov     edx, [ebp-18]
00401C8B  |.  C1C2 1E       |rol     edx, 1E
00401C8E  |.  8955 E8       |mov     [ebp-18], edx
00401C91  |.  C1C1 05       |rol     ecx, 5
00401C94  |.  8B45 EC       |mov     eax, [ebp-14]
00401C97  |.  0BD0          |or      edx, eax
00401C99  |.  2355 E4       |and     edx, [ebp-1C]
00401C9C  |.  2345 E8       |and     eax, [ebp-18]
00401C9F  |.  0BD0          |or      edx, eax
00401CA1  |.  0355 BC       |add     edx, [ebp-44]
00401CA4  |.  03D1          |add     edx, ecx
00401CA6  |.  0355 F4       |add     edx, [ebp-C]
00401CA9  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401CAF  |.  8955 F4       |mov     [ebp-C], edx
00401CB2  |.  8BCA          |mov     ecx, edx
00401CB4  |.  8B55 EC       |mov     edx, [ebp-14]
00401CB7  |.  C1C2 1E       |rol     edx, 1E
00401CBA  |.  8955 EC       |mov     [ebp-14], edx
00401CBD  |.  C1C1 05       |rol     ecx, 5
00401CC0  |.  8B45 F0       |mov     eax, [ebp-10]
00401CC3  |.  0BD0          |or      edx, eax
00401CC5  |.  2355 E8       |and     edx, [ebp-18]
00401CC8  |.  2345 EC       |and     eax, [ebp-14]
00401CCB  |.  0BD0          |or      edx, eax
00401CCD  |.  0355 C0       |add     edx, [ebp-40]
00401CD0  |.  03D1          |add     edx, ecx
00401CD2  |.  0355 E4       |add     edx, [ebp-1C]
00401CD5  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401CDB  |.  8955 E4       |mov     [ebp-1C], edx
00401CDE  |.  8BCA          |mov     ecx, edx
00401CE0  |.  8B55 F0       |mov     edx, [ebp-10]
00401CE3  |.  C1C2 1E       |rol     edx, 1E
00401CE6  |.  8955 F0       |mov     [ebp-10], edx
00401CE9  |.  C1C1 05       |rol     ecx, 5
00401CEC  |.  8B45 F4       |mov     eax, [ebp-C]
00401CEF  |.  0BD0          |or      edx, eax
00401CF1  |.  2355 EC       |and     edx, [ebp-14]
00401CF4  |.  2345 F0       |and     eax, [ebp-10]
00401CF7  |.  0BD0          |or      edx, eax
00401CF9  |.  0355 C4       |add     edx, [ebp-3C]
00401CFC  |.  03D1          |add     edx, ecx
00401CFE  |.  0355 E8       |add     edx, [ebp-18]
00401D01  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401D07  |.  8955 E8       |mov     [ebp-18], edx
00401D0A  |.  8BCA          |mov     ecx, edx
00401D0C  |.  8B55 F4       |mov     edx, [ebp-C]
00401D0F  |.  C1C2 1E       |rol     edx, 1E
00401D12  |.  8955 F4       |mov     [ebp-C], edx
00401D15  |.  C1C1 05       |rol     ecx, 5
00401D18  |.  8B45 E4       |mov     eax, [ebp-1C]
00401D1B  |.  0BD0          |or      edx, eax
00401D1D  |.  2355 F0       |and     edx, [ebp-10]
00401D20  |.  2345 F4       |and     eax, [ebp-C]
00401D23  |.  0BD0          |or      edx, eax
00401D25  |.  0355 C8       |add     edx, [ebp-38]
00401D28  |.  03D1          |add     edx, ecx
00401D2A  |.  0355 EC       |add     edx, [ebp-14]
00401D2D  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401D33  |.  8955 EC       |mov     [ebp-14], edx
00401D36  |.  8BCA          |mov     ecx, edx
00401D38  |.  8B55 E4       |mov     edx, [ebp-1C]
00401D3B  |.  C1C2 1E       |rol     edx, 1E
00401D3E  |.  8955 E4       |mov     [ebp-1C], edx
00401D41  |.  C1C1 05       |rol     ecx, 5
00401D44  |.  8B45 E8       |mov     eax, [ebp-18]
00401D47  |.  0BD0          |or      edx, eax
00401D49  |.  2355 F4       |and     edx, [ebp-C]
00401D4C  |.  2345 E4       |and     eax, [ebp-1C]
00401D4F  |.  0BD0          |or      edx, eax
00401D51  |.  0355 CC       |add     edx, [ebp-34]
00401D54  |.  03D1          |add     edx, ecx
00401D56  |.  0355 F0       |add     edx, [ebp-10]
00401D59  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401D5F  |.  8955 F0       |mov     [ebp-10], edx
00401D62  |.  8BCA          |mov     ecx, edx
00401D64  |.  8B55 E8       |mov     edx, [ebp-18]
00401D67  |.  C1C2 1E       |rol     edx, 1E
00401D6A  |.  8955 E8       |mov     [ebp-18], edx
00401D6D  |.  C1C1 05       |rol     ecx, 5
00401D70  |.  8B45 EC       |mov     eax, [ebp-14]
00401D73  |.  0BD0          |or      edx, eax
00401D75  |.  2355 E4       |and     edx, [ebp-1C]
00401D78  |.  2345 E8       |and     eax, [ebp-18]
00401D7B  |.  0BD0          |or      edx, eax
00401D7D  |.  0355 D0       |add     edx, [ebp-30]
00401D80  |.  03D1          |add     edx, ecx
00401D82  |.  0355 F4       |add     edx, [ebp-C]
00401D85  |.  81C2 DCBC1B8F |add     edx, 8F1BBCDC
00401D8B  |.  8955 F4       |mov     [ebp-C], edx
00401D8E  |.  8BCA          |mov     ecx, edx
00401D90  |.  8B55 EC       |mov     edx, [ebp-14]
00401D93  |.  C1C2 1E       |rol     edx, 1E
00401D96  |.  8955 EC       |mov     [ebp-14], edx
00401D99  |.  C1C1 05       |rol     ecx, 5
00401D9C  |.  3355 E8       |xor     edx, [ebp-18]
00401D9F  |.  3355 F0       |xor     edx, [ebp-10]
00401DA2  |.  0355 D4       |add     edx, [ebp-2C]
00401DA5  |.  03D1          |add     edx, ecx
00401DA7  |.  0355 E4       |add     edx, [ebp-1C]
00401DAA  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401DB0  |.  8955 E4       |mov     [ebp-1C], edx
00401DB3  |.  8BCA          |mov     ecx, edx
00401DB5  |.  8B55 F0       |mov     edx, [ebp-10]
00401DB8  |.  C1C2 1E       |rol     edx, 1E
00401DBB  |.  8955 F0       |mov     [ebp-10], edx
00401DBE  |.  C1C1 05       |rol     ecx, 5
00401DC1  |.  3355 EC       |xor     edx, [ebp-14]
00401DC4  |.  3355 F4       |xor     edx, [ebp-C]
00401DC7  |.  0355 D8       |add     edx, [ebp-28]
00401DCA  |.  03D1          |add     edx, ecx
00401DCC  |.  0355 E8       |add     edx, [ebp-18]
00401DCF  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401DD5  |.  8955 E8       |mov     [ebp-18], edx
00401DD8  |.  8BCA          |mov     ecx, edx
00401DDA  |.  8B55 F4       |mov     edx, [ebp-C]
00401DDD  |.  C1C2 1E       |rol     edx, 1E
00401DE0  |.  8955 F4       |mov     [ebp-C], edx
00401DE3  |.  C1C1 05       |rol     ecx, 5
00401DE6  |.  3355 F0       |xor     edx, [ebp-10]
00401DE9  |.  3355 E4       |xor     edx, [ebp-1C]
00401DEC  |.  0355 DC       |add     edx, [ebp-24]
00401DEF  |.  03D1          |add     edx, ecx
00401DF1  |.  0355 EC       |add     edx, [ebp-14]
00401DF4  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401DFA  |.  8955 EC       |mov     [ebp-14], edx
00401DFD  |.  8BCA          |mov     ecx, edx
00401DFF  |.  8B55 E4       |mov     edx, [ebp-1C]
00401E02  |.  C1C2 1E       |rol     edx, 1E
00401E05  |.  8955 E4       |mov     [ebp-1C], edx
00401E08  |.  C1C1 05       |rol     ecx, 5
00401E0B  |.  3355 F4       |xor     edx, [ebp-C]
00401E0E  |.  3355 E8       |xor     edx, [ebp-18]
00401E11  |.  0355 E0       |add     edx, [ebp-20]
00401E14  |.  03D1          |add     edx, ecx
00401E16  |.  0355 F0       |add     edx, [ebp-10]
00401E19  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401E1F  |.  8955 F0       |mov     [ebp-10], edx
00401E22  |.  8BCA          |mov     ecx, edx
00401E24  |.  8B55 E8       |mov     edx, [ebp-18]
00401E27  |.  C1C2 1E       |rol     edx, 1E
00401E2A  |.  8955 E8       |mov     [ebp-18], edx
00401E2D  |.  33DB          |xor     ebx, ebx
00401E2F  |>  80C3 08       |/add     bl, 8
00401E32  |.  80E3 3F       ||and     bl, 3F
00401E35  |.  36:8B442B A4  ||mov     eax, ss:[ebx+ebp-5C]
00401E3A  |.  80C3 18       ||add     bl, 18
00401E3D  |.  80E3 3F       ||and     bl, 3F
00401E40  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401E45  |.  80C3 14       ||add     bl, 14
00401E48  |.  80E3 3F       ||and     bl, 3F
00401E4B  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401E50  |.  80EB 34       ||sub     bl, 34
00401E53  |.  80E3 3F       ||and     bl, 3F
00401E56  |.  36:33442B A4  ||xor     eax, ss:[ebx+ebp-5C]
00401E5B  |.  D1C0          ||rol     eax, 1
00401E5D  |.  36:89442B A4  ||mov     ss:[ebx+ebp-5C], eax
00401E62  |.  80C3 04       ||add     bl, 4
00401E65  |.  F6C3 3F       ||test    bl, 3F
00401E68  |.^ 75 C5         |\jnz     short 00401E2F
00401E6A  |.  C1C1 05       |rol     ecx, 5
00401E6D  |.  3355 E4       |xor     edx, [ebp-1C]
00401E70  |.  3355 EC       |xor     edx, [ebp-14]
00401E73  |.  0355 A4       |add     edx, [ebp-5C]
00401E76  |.  03D1          |add     edx, ecx
00401E78  |.  0355 F4       |add     edx, [ebp-C]
00401E7B  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401E81  |.  8955 F4       |mov     [ebp-C], edx
00401E84  |.  8BCA          |mov     ecx, edx
00401E86  |.  8B55 EC       |mov     edx, [ebp-14]
00401E89  |.  C1C2 1E       |rol     edx, 1E
00401E8C  |.  8955 EC       |mov     [ebp-14], edx
00401E8F  |.  C1C1 05       |rol     ecx, 5
00401E92  |.  3355 E8       |xor     edx, [ebp-18]
00401E95  |.  3355 F0       |xor     edx, [ebp-10]
00401E98  |.  0355 A8       |add     edx, [ebp-58]
00401E9B  |.  03D1          |add     edx, ecx
00401E9D  |.  0355 E4       |add     edx, [ebp-1C]
00401EA0  |.  81C2 D6C162CA |add     edx, CA62C1D6 //sha的关键数据
00401EA6  |.  8955 E4       |mov     [ebp-1C], edx
00401EA9  |.  8BCA          |mov     ecx, edx
00401EAB  |.  8B55 F0       |mov     edx, [ebp-10]
00401EAE  |.  C1C2 1E       |rol     edx, 1E
00401EB1  |.  8955 F0       |mov     [ebp-10], edx
00401EB4  |.  C1C1 05       |rol     ecx, 5
00401EB7  |.  3355 EC       |xor     edx, [ebp-14]
00401EBA  |.  3355 F4       |xor     edx, [ebp-C]
00401EBD  |.  0355 AC       |add     edx, [ebp-54]
00401EC0  |.  03D1          |add     edx, ecx
00401EC2  |.  0355 E8       |add     edx, [ebp-18]
00401EC5  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401ECB  |.  8955 E8       |mov     [ebp-18], edx
00401ECE  |.  8BCA          |mov     ecx, edx
00401ED0  |.  8B55 F4       |mov     edx, [ebp-C]
00401ED3  |.  C1C2 1E       |rol     edx, 1E
00401ED6  |.  8955 F4       |mov     [ebp-C], edx
00401ED9  |.  C1C1 05       |rol     ecx, 5
00401EDC  |.  3355 F0       |xor     edx, [ebp-10]
00401EDF  |.  3355 E4       |xor     edx, [ebp-1C]
00401EE2  |.  0355 B0       |add     edx, [ebp-50]
00401EE5  |.  03D1          |add     edx, ecx
00401EE7  |.  0355 EC       |add     edx, [ebp-14]
00401EEA  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401EF0  |.  8955 EC       |mov     [ebp-14], edx
00401EF3  |.  8BCA          |mov     ecx, edx
00401EF5  |.  8B55 E4       |mov     edx, [ebp-1C]
00401EF8  |.  C1C2 1E       |rol     edx, 1E
00401EFB  |.  8955 E4       |mov     [ebp-1C], edx
00401EFE  |.  C1C1 05       |rol     ecx, 5
00401F01  |.  3355 F4       |xor     edx, [ebp-C]
00401F04  |.  3355 E8       |xor     edx, [ebp-18]
00401F07  |.  0355 B4       |add     edx, [ebp-4C]
00401F0A  |.  03D1          |add     edx, ecx
00401F0C  |.  0355 F0       |add     edx, [ebp-10]
00401F0F  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401F15  |.  8955 F0       |mov     [ebp-10], edx
00401F18  |.  8BCA          |mov     ecx, edx
00401F1A  |.  8B55 E8       |mov     edx, [ebp-18]
00401F1D  |.  C1C2 1E       |rol     edx, 1E
00401F20  |.  8955 E8       |mov     [ebp-18], edx
00401F23  |.  C1C1 05       |rol     ecx, 5
00401F26  |.  3355 E4       |xor     edx, [ebp-1C]
00401F29  |.  3355 EC       |xor     edx, [ebp-14]
00401F2C  |.  0355 B8       |add     edx, [ebp-48]
00401F2F  |.  03D1          |add     edx, ecx
00401F31  |.  0355 F4       |add     edx, [ebp-C]
00401F34  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401F3A  |.  8955 F4       |mov     [ebp-C], edx
00401F3D  |.  8BCA          |mov     ecx, edx
00401F3F  |.  8B55 EC       |mov     edx, [ebp-14]
00401F42  |.  C1C2 1E       |rol     edx, 1E
00401F45  |.  8955 EC       |mov     [ebp-14], edx
00401F48  |.  C1C1 05       |rol     ecx, 5
00401F4B  |.  3355 E8       |xor     edx, [ebp-18]
00401F4E  |.  3355 F0       |xor     edx, [ebp-10]
00401F51  |.  0355 BC       |add     edx, [ebp-44]
00401F54  |.  03D1          |add     edx, ecx
00401F56  |.  0355 E4       |add     edx, [ebp-1C]
00401F59  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401F5F  |.  8955 E4       |mov     [ebp-1C], edx
00401F62  |.  8BCA          |mov     ecx, edx
00401F64  |.  8B55 F0       |mov     edx, [ebp-10]
00401F67  |.  C1C2 1E       |rol     edx, 1E
00401F6A  |.  8955 F0       |mov     [ebp-10], edx
00401F6D  |.  C1C1 05       |rol     ecx, 5
00401F70  |.  3355 EC       |xor     edx, [ebp-14]
00401F73  |.  3355 F4       |xor     edx, [ebp-C]
00401F76  |.  0355 C0       |add     edx, [ebp-40]
00401F79  |.  03D1          |add     edx, ecx
00401F7B  |.  0355 E8       |add     edx, [ebp-18]
00401F7E  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401F84  |.  8955 E8       |mov     [ebp-18], edx
00401F87  |.  8BCA          |mov     ecx, edx
00401F89  |.  8B55 F4       |mov     edx, [ebp-C]
00401F8C  |.  C1C2 1E       |rol     edx, 1E
00401F8F  |.  8955 F4       |mov     [ebp-C], edx
00401F92  |.  C1C1 05       |rol     ecx, 5
00401F95  |.  3355 F0       |xor     edx, [ebp-10]
00401F98  |.  3355 E4       |xor     edx, [ebp-1C]
00401F9B  |.  0355 C4       |add     edx, [ebp-3C]
00401F9E  |.  03D1          |add     edx, ecx
00401FA0  |.  0355 EC       |add     edx, [ebp-14]
00401FA3  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401FA9  |.  8955 EC       |mov     [ebp-14], edx
00401FAC  |.  8BCA          |mov     ecx, edx
00401FAE  |.  8B55 E4       |mov     edx, [ebp-1C]
00401FB1  |.  C1C2 1E       |rol     edx, 1E
00401FB4  |.  8955 E4       |mov     [ebp-1C], edx
00401FB7  |.  C1C1 05       |rol     ecx, 5
00401FBA  |.  3355 F4       |xor     edx, [ebp-C]
00401FBD  |.  3355 E8       |xor     edx, [ebp-18]
00401FC0  |.  0355 C8       |add     edx, [ebp-38]
00401FC3  |.  03D1          |add     edx, ecx
00401FC5  |.  0355 F0       |add     edx, [ebp-10]
00401FC8  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401FCE  |.  8955 F0       |mov     [ebp-10], edx
00401FD1  |.  8BCA          |mov     ecx, edx
00401FD3  |.  8B55 E8       |mov     edx, [ebp-18]
00401FD6  |.  C1C2 1E       |rol     edx, 1E
00401FD9  |.  8955 E8       |mov     [ebp-18], edx
00401FDC  |.  C1C1 05       |rol     ecx, 5
00401FDF  |.  3355 E4       |xor     edx, [ebp-1C]
00401FE2  |.  3355 EC       |xor     edx, [ebp-14]
00401FE5  |.  0355 CC       |add     edx, [ebp-34]
00401FE8  |.  03D1          |add     edx, ecx
00401FEA  |.  0355 F4       |add     edx, [ebp-C]
00401FED  |.  81C2 D6C162CA |add     edx, CA62C1D6
00401FF3  |.  8955 F4       |mov     [ebp-C], edx
00401FF6  |.  8BCA          |mov     ecx, edx
00401FF8  |.  8B55 EC       |mov     edx, [ebp-14]
00401FFB  |.  C1C2 1E       |rol     edx, 1E
00401FFE  |.  8955 EC       |mov     [ebp-14], edx
00402001  |.  C1C1 05       |rol     ecx, 5
00402004  |.  3355 E8       |xor     edx, [ebp-18]
00402007  |.  3355 F0       |xor     edx, [ebp-10]
0040200A  |.  0355 D0       |add     edx, [ebp-30]
0040200D  |.  03D1          |add     edx, ecx
0040200F  |.  0355 E4       |add     edx, [ebp-1C]
00402012  |.  81C2 D6C162CA |add     edx, CA62C1D6
00402018  |.  8955 E4       |mov     [ebp-1C], edx
0040201B  |.  8BCA          |mov     ecx, edx
0040201D  |.  8B55 F0       |mov     edx, [ebp-10]
00402020  |.  C1C2 1E       |rol     edx, 1E
00402023  |.  8955 F0       |mov     [ebp-10], edx
00402026  |.  C1C1 05       |rol     ecx, 5
00402029  |.  3355 EC       |xor     edx, [ebp-14]
0040202C  |.  3355 F4       |xor     edx, [ebp-C]
0040202F  |.  0355 D4       |add     edx, [ebp-2C]
00402032  |.  03D1          |add     edx, ecx
00402034  |.  0355 E8       |add     edx, [ebp-18]
00402037  |.  81C2 D6C162CA |add     edx, CA62C1D6
0040203D  |.  8955 E8       |mov     [ebp-18], edx
00402040  |.  8BCA          |mov     ecx, edx
00402042  |.  8B55 F4       |mov     edx, [ebp-C]
00402045  |.  C1C2 1E       |rol     edx, 1E
00402048  |.  8955 F4       |mov     [ebp-C], edx
0040204B  |.  C1C1 05       |rol     ecx, 5
0040204E  |.  3355 F0       |xor     edx, [ebp-10]
00402051  |.  3355 E4       |xor     edx, [ebp-1C]
00402054  |.  0355 D8       |add     edx, [ebp-28]
00402057  |.  03D1          |add     edx, ecx
00402059  |.  0355 EC       |add     edx, [ebp-14]
0040205C  |.  81C2 D6C162CA |add     edx, CA62C1D6
00402062  |.  8955 EC       |mov     [ebp-14], edx
00402065  |.  8BCA          |mov     ecx, edx
00402067  |.  8B55 E4       |mov     edx, [ebp-1C]
0040206A  |.  C1C2 1E       |rol     edx, 1E
0040206D  |.  8955 E4       |mov     [ebp-1C], edx
00402070  |.  C1C1 05       |rol     ecx, 5
00402073  |.  3355 F4       |xor     edx, [ebp-C]
00402076  |.  3355 E8       |xor     edx, [ebp-18]
00402079  |.  0355 DC       |add     edx, [ebp-24]
0040207C  |.  03D1          |add     edx, ecx
0040207E  |.  0355 F0       |add     edx, [ebp-10]
00402081  |.  81C2 D6C162CA |add     edx, CA62C1D6
00402087  |.  8955 F0       |mov     [ebp-10], edx
0040208A  |.  8BCA          |mov     ecx, edx
0040208C  |.  8B55 E8       |mov     edx, [ebp-18]
0040208F  |.  C1C2 1E       |rol     edx, 1E
00402092  |.  8955 E8       |mov     [ebp-18], edx
00402095  |.  C1C1 05       |rol     ecx, 5
00402098  |.  3355 E4       |xor     edx, [ebp-1C]
0040209B  |.  3355 EC       |xor     edx, [ebp-14]
0040209E  |.  0355 E0       |add     edx, [ebp-20]
004020A1  |.  03D1          |add     edx, ecx
004020A3  |.  0355 F4       |add     edx, [ebp-C]
004020A6  |.  81C2 D6C162CA |add     edx, CA62C1D6
004020AC  |.  8955 F4       |mov     [ebp-C], edx
004020AF  |.  8BCA          |mov     ecx, edx
004020B1  |.  8B55 EC       |mov     edx, [ebp-14]
004020B4  |.  C1C2 1E       |rol     edx, 1E
004020B7  |.  8955 EC       |mov     [ebp-14], edx
004020BA  |.  8B45 14       |mov     eax, [ebp+14]
004020BD  |.  0108          |add     [eax], ecx
004020BF  |.  8B4D F0       |mov     ecx, [ebp-10]
004020C2  |.  0148 04       |add     [eax+4], ecx
004020C5  |.  0150 08       |add     [eax+8], edx
004020C8  |.  8B55 E8       |mov     edx, [ebp-18]
004020CB  |.  0150 0C       |add     [eax+C], edx
004020CE  |.  8B55 E4       |mov     edx, [ebp-1C]
004020D1  |.  0150 10       |add     [eax+10], edx
004020D4  |.  807D F8 00    |cmp     byte ptr [ebp-8], 0
004020D8  |.^ 0F84 F2F1FFFF \je      004012D0
004020DE  |.  8B7D 14       mov     edi, [ebp+14]
004020E1  |.  B9 05000000   mov     ecx, 5
004020E6  |>  8B07          /mov     eax, [edi]
004020E8  |.  0FC8          |bswap   eax
004020EA  |.  AB            |stos    dword ptr es:[edi]
004020EB  |.^ E2 F9         \loopd   short 004020E6
004020ED  |>  5F            pop     edi
004020EE  |.  5E            pop     esi
004020EF  |.  5B            pop     ebx
004020F0  |.  C9            leave
004020F1  \.  C2 1400       retn    14
004020F4  /.  55            push    ebp
004020F5  |.  8BEC          mov     ebp, esp
004020F7  |.  6A 00         push    0                                        ; /Arg5 = 00000000
004020F9  |.  FF75 10       push    dword ptr [ebp+10]                       ; |Arg4
004020FC  |.  FF75 0C       push    dword ptr [ebp+C]                        ; |Arg3
004020FF  |.  FF75 0C       push    dword ptr [ebp+C]                        ; |Arg2
00402102  |.  FF75 08       push    dword ptr [ebp+8]                        ; |Arg1
00402105  |.  E8 86F1FFFF   call    00401290                                 ; \CrackMe_.00401290
0040210A  |.  C9            leave
0040210B  \.  C2 0C00       retn    0C
从上面可以很容易分析出,SHA的R0,R1,R2,R3,R4 4个算子。具体见注册机,HappyTown这个SHA的变异之处在于,初始state的值,和R1,R2,R3,R4 4个算子的计算。
标准的R1,R2,R3,R4是:
#define blk0(i) (W[i] = data[i])
#define blk1(i) (W[i&15] = rotlFixed(W[(i+13)&15]^W[(i+8)&15]^W[(i+2)&15]^W[i&15],1))

#define R0(v,w,x,y,z,i) z+=f1(w,x,y)+blk0(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R1(v,w,x,y,z,i) z+=f1(w,x,y)+blk1(i)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R2(v,w,x,y,z,i) z+=f2(w,x,y)+blk1(i)+0x6ED9EBA1+rotlFixed(v,5);w=rotlFixed(w,30);
#define R3(v,w,x,y,z,i) z+=f3(w,x,y)+blk1(i)+0x8F1BBCDC+rotlFixed(v,5);w=rotlFixed(w,30);
#define R4(v,w,x,y,z,i) z+=f4(w,x,y)+blk1(i)+0xCA62C1D6+rotlFixed(v,5);w=rotlFixed(w,30);
这里的是:
#define blk0(i) W[i]

#define f1(x,y,z) (z^(x&(y^z)))
#define f2(x,y,z) (x^y^z)
#define f3(x,y,z) ((x&y)|(z&(x|y)))
#define f4(x,y,z) (x^y^z)

/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
#define R0(v,w,x,y,z,i) z+=f1(w,x,y)+blk0(i%16)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R1(v,w,x,y,z,i) z+=f1(w,x,y)+blk0(i%16)+0x5A827999+rotlFixed(v,5);w=rotlFixed(w,30);
#define R2(v,w,x,y,z,i) z+=f2(w,x,y)+blk0(i%16)+0x6ED9EBA1+rotlFixed(v,5);w=rotlFixed(w,30);
#define R3(v,w,x,y,z,i) z+=f3(w,x,y)+blk0(i%16)+0x8F1BBCDC+rotlFixed(v,5);w=rotlFixed(w,30);
#define R4(v,w,x,y,z,i) z+=f4(w,x,y)+blk0(i%16)+0xCA62C1D6+rotlFixed(v,5);w=rotlFixed(w,30);

还有就是轮换部分,HappyTown采用的一次全部轮换的办法,和标准有点差别,最后注意的就是算法用的是BIG_ENDIAN。

其余见注册机吧。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 234
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
强,学习了!
2006-5-13 21:04
0
雪    币: 225
活跃值: (1236)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
由一个Crackme引发的两篇精华啊
学习了...
2006-5-14 09:25
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
4
Ryosuke分析得的确很棒!
2006-5-15 08:06
0
游客
登录 | 注册 方可回帖
返回
//