-
-
[原创]HappyTown CrackMe11的破解以及注册机(C源代码)
-
发表于: 2006-5-13 20:58 7827
-
原文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。
其余见注册机吧。
赞赏
- [原创]VMProtect 1.6x的一点心得 24024
- [原创]Code Virtualizer的一点分析和还原 23192
- [原创]Private exe Protector主程序的VM分析 11045
- [原创]Enigma VM的分析 18373
- [招聘]北京某著名安全公司招安全研究工程师 8809