- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
楼主 |
发表于 2007-2-22 13:39:15
|
显示全部楼层
软件启动时验证注册码算法部分
102A0CE0 55 push ebp
102A0CE1 8BEC mov ebp, esp
102A0CE3 81EC A8060000 sub esp, 6A8
102A0CE9 56 push esi
102A0CEA 57 push edi
102A0CEB C785 7CFDFFFF 0>mov dword ptr [ebp-284], 0
102A0CF5 C785 80FDFFFF 0>mov dword ptr [ebp-280], 0
102A0CFF C785 78FDFFFF F>mov dword ptr [ebp-288], -1
102A0D09 837D 08 00 cmp dword ptr [ebp+8], 0
102A0D0D 74 13 je short 102A0D22
102A0D0F 8B7D 08 mov edi, [ebp+8]
102A0D12 83C9 FF or ecx, FFFFFFFF
102A0D15 33C0 xor eax, eax
102A0D17 F2:AE repne scas byte ptr es:[edi]
102A0D19 F7D1 not ecx
102A0D1B 83C1 FF add ecx, -1
102A0D1E 85C9 test ecx, ecx
102A0D20 75 07 jnz short 102A0D29
102A0D22 33C0 xor eax, eax
102A0D24 E9 0D040000 jmp 102A1136
102A0D29 C785 84FDFFFF E>mov dword ptr [ebp-27C], 102DBDE>
102A0D33 C785 84FDFFFF D>mov dword ptr [ebp-27C], 102DBDD>
102A0D3D 8D85 84FDFFFF lea eax, [ebp-27C]
102A0D43 50 push eax
102A0D44 8B4D 08 mov ecx, [ebp+8]
102A0D47 51 push ecx
102A0D48 8D8D 88FDFFFF lea ecx, [ebp-278]
102A0D4E E8 ED030000 call 102A1140
102A0D53 8B95 88FDFFFF mov edx, [ebp-278]
102A0D59 81E2 FFFF0000 and edx, 0FFFF
102A0D5F 83E2 01 and edx, 1
102A0D62 85D2 test edx, edx
102A0D64 75 07 jnz short 102A0D6D ; 第一处暴破掉 JNZ 修改为 JMP
102A0D66 33C0 xor eax, eax
102A0D68 E9 C9030000 jmp 102A1136
102A0D6D 68 2083B8ED push EDB88320
102A0D72 8D8D 6CF9FFFF lea ecx, [ebp-694]
102A0D78 E8 A3050000 call 102A1320
102A0D7D C785 74FDFFFF 0>mov dword ptr [ebp-28C], 0
102A0D87 EB 0F jmp short 102A0D98
102A0D89 8B85 74FDFFFF mov eax, [ebp-28C] ; 注册码32位 循环开始点
102A0D8F 83C0 01 add eax, 1
102A0D92 8985 74FDFFFF mov [ebp-28C], eax
102A0D98 8B7D 08 mov edi, [ebp+8]
102A0D9B 83C9 FF or ecx, FFFFFFFF
102A0D9E 33C0 xor eax, eax
102A0DA0 F2:AE repne scas byte ptr es:[edi]
102A0DA2 F7D1 not ecx
102A0DA4 83C1 FF add ecx, -1
102A0DA7 398D 74FDFFFF cmp [ebp-28C], ecx
102A0DAD 73 74 jnb short 102A0E23
102A0DAF 8B4D 08 mov ecx, [ebp+8]
102A0DB2 038D 74FDFFFF add ecx, [ebp-28C]
102A0DB8 0FBE11 movsx edx, byte ptr [ecx]
102A0DBB 83FA 20 cmp edx, 20
102A0DBE 7E 5E jle short 102A0E1E
102A0DC0 8B45 08 mov eax, [ebp+8]
102A0DC3 0385 74FDFFFF add eax, [ebp-28C]
102A0DC9 8A08 mov cl, [eax]
102A0DCB 888D 58F9FFFF mov [ebp-6A8], cl
102A0DD1 8B95 6CFDFFFF mov edx, [ebp-294]
102A0DD7 81E2 FF000000 and edx, 0FF
102A0DDD 8B85 58F9FFFF mov eax, [ebp-6A8]
102A0DE3 25 FF000000 and eax, 0FF
102A0DE8 33D0 xor edx, eax
102A0DEA 8895 5CF9FFFF mov [ebp-6A4], dl
102A0DF0 8B8D 6CFDFFFF mov ecx, [ebp-294]
102A0DF6 C1E9 08 shr ecx, 8
102A0DF9 898D 6CFDFFFF mov [ebp-294], ecx
102A0DFF 8B95 5CF9FFFF mov edx, [ebp-6A4]
102A0E05 81E2 FF000000 and edx, 0FF
102A0E0B 8B85 6CFDFFFF mov eax, [ebp-294]
102A0E11 338495 6CF9FFFF xor eax, [ebp+edx*4-694]
102A0E18 8985 6CFDFFFF mov [ebp-294], eax
102A0E1E ^ E9 66FFFFFF jmp 102A0D89
102A0E23 C785 64F9FFFF 0>mov dword ptr [ebp-69C], 0
102A0E2D EB 0F jmp short 102A0E3E
102A0E2F 8B8D 64F9FFFF mov ecx, [ebp-69C]
102A0E35 83C1 01 add ecx, 1
102A0E38 898D 64F9FFFF mov [ebp-69C], ecx
102A0E3E 81BD 64F9FFFF A>cmp dword ptr [ebp-69C], 0AF
102A0E48 73 20 jnb short 102A0E6A
102A0E4A 8B95 6CFDFFFF mov edx, [ebp-294]
102A0E50 F7D2 not edx
102A0E52 8B85 64F9FFFF mov eax, [ebp-69C]
102A0E58 391485 D8F83210 cmp [eax*4+1032F8D8], edx
102A0E5F 75 07 jnz short 102A0E68
102A0E61 33C0 xor eax, eax
102A0E63 E9 CE020000 jmp 102A1136
102A0E68 ^ EB C5 jmp short 102A0E2F
102A0E6A 8B8D 8CFDFFFF mov ecx, [ebp-274]
102A0E70 81E1 FFFF0000 and ecx, 0FFFF
102A0E76 85C9 test ecx, ecx
102A0E78 75 11 jnz short 102A0E8B
102A0E7A 8B95 9EFEFFFF mov edx, [ebp-162]
102A0E80 81E2 FFFF0000 and edx, 0FFFF
102A0E86 83FA 10 cmp edx, 10
102A0E89 7E 07 jle short 102A0E92
102A0E8B 33C0 xor eax, eax
102A0E8D E9 A4020000 jmp 102A1136
102A0E92 8B85 88FDFFFF mov eax, [ebp-278]
102A0E98 25 FFFF0000 and eax, 0FFFF
102A0E9D 83E0 02 and eax, 2
102A0EA0 85C0 test eax, eax
102A0EA2 74 07 je short 102A0EAB
102A0EA4 33C0 xor eax, eax
102A0EA6 E9 8B020000 jmp 102A1136
102A0EAB 8B4D 08 mov ecx, [ebp+8]
102A0EAE 51 push ecx
102A0EAF E8 DCFCFFFF call CheckTime
102A0EB4 83C4 04 add esp, 4
102A0EB7 85C0 test eax, eax
102A0EB9 74 07 je short 102A0EC2
102A0EBB 33C0 xor eax, eax
102A0EBD E9 74020000 jmp 102A1136
102A0EC2 C685 60F9FFFF 0>mov byte ptr [ebp-6A0], 0
102A0EC9 C785 68F9FFFF 0>mov dword ptr [ebp-698], 0
102A0ED3 EB 0F jmp short 102A0EE4
102A0ED5 8B95 68F9FFFF mov edx, [ebp-698]
102A0EDB 83C2 01 add edx, 1
102A0EDE 8995 68F9FFFF mov [ebp-698], edx
102A0EE4 8B85 9EFEFFFF mov eax, [ebp-162]
102A0EEA 25 FFFF0000 and eax, 0FFFF
102A0EEF 3985 68F9FFFF cmp [ebp-698], eax
102A0EF5 0F8D C0010000 jge 102A10BB ; 我修改了这里的地址 我修改为102A1007
102A0EFB 8B8D 68F9FFFF mov ecx, [ebp-698]
102A0F01 6BC9 16 imul ecx, ecx, 16
102A0F04 33D2 xor edx, edx
102A0F06 66:8B940D A0FEF>mov dx, [ebp+ecx-160]
102A0F0E 81FA 01020000 cmp edx, 201
102A0F14 74 02 je short 102A0F18
102A0F16 ^ EB BD jmp short 102A0ED5
102A0F18 8B85 68F9FFFF mov eax, [ebp-698]
102A0F1E 6BC0 16 imul eax, eax, 16
102A0F21 33C9 xor ecx, ecx
102A0F23 66:8B8C05 A2FEF>mov cx, [ebp+eax-15E]
102A0F2B 898D 7CFDFFFF mov [ebp-284], ecx
102A0F31 8B95 68F9FFFF mov edx, [ebp-698]
102A0F37 6BD2 16 imul edx, edx, 16
102A0F3A 33C0 xor eax, eax
102A0F3C 8A8415 A4FEFFFF mov al, [ebp+edx-15C]
102A0F43 8985 80FDFFFF mov [ebp-280], eax
102A0F49 837D 0C 00 cmp dword ptr [ebp+C], 0
102A0F4D 74 26 je short 102A0F75
102A0F4F 8DBD 9CFDFFFF lea edi, [ebp-264]
102A0F55 8B55 0C mov edx, [ebp+C]
102A0F58 83C9 FF or ecx, FFFFFFFF
102A0F5B 33C0 xor eax, eax
102A0F5D F2:AE repne scas byte ptr es:[edi]
102A0F5F F7D1 not ecx
102A0F61 2BF9 sub edi, ecx
102A0F63 8BF7 mov esi, edi
102A0F65 8BC1 mov eax, ecx
102A0F67 8BFA mov edi, edx
102A0F69 C1E9 02 shr ecx, 2
102A0F6C F3:A5 rep movs dword ptr es:[edi], dwo>
102A0F6E 8BC8 mov ecx, eax
102A0F70 83E1 03 and ecx, 3
102A0F73 F3:A4 rep movs byte ptr es:[edi], byte>
102A0F75 83BD 80FDFFFF 0>cmp dword ptr [ebp-280], 0
102A0F7C 0F85 AC000000 jnz 102A102E
102A0F82 83BD 7CFDFFFF 0>cmp dword ptr [ebp-284], 0
102A0F89 75 37 jnz short 102A0FC2
102A0F8B C785 7CFDFFFF 0>mov dword ptr [ebp-284], 1
102A0F95 837D 10 00 cmp dword ptr [ebp+10], 0
102A0F99 74 25 je short 102A0FC0
102A0F9B BF B8FB3210 mov edi, 1032FBB8 ; ASCII "Corporate"
102A0FA0 8B55 10 mov edx, [ebp+10]
102A0FA3 83C9 FF or ecx, FFFFFFFF
102A0FA6 33C0 xor eax, eax
102A0FA8 F2:AE repne scas byte ptr es:[edi]
102A0FAA F7D1 not ecx
102A0FAC 2BF9 sub edi, ecx
102A0FAE 8BF7 mov esi, edi
102A0FB0 8BC1 mov eax, ecx
102A0FB2 8BFA mov edi, edx
102A0FB4 C1E9 02 shr ecx, 2
102A0FB7 F3:A5 rep movs dword ptr es:[edi], dwo>
102A0FB9 8BC8 mov ecx, eax
102A0FBB 83E1 03 and ecx, 3
102A0FBE F3:A4 rep movs byte ptr es:[edi], byte>
102A0FC0 EB 6A jmp short 102A102C
102A0FC2 83BD 7CFDFFFF 0>cmp dword ptr [ebp-284], 1
102A0FC9 74 09 je short 102A0FD4
102A0FCB 83BD 7CFDFFFF 0>cmp dword ptr [ebp-284], 0
102A0FD2 75 2D jnz short 102A1001
102A0FD4 837D 10 00 cmp dword ptr [ebp+10], 0
102A0FD8 74 25 je short 102A0FFF
102A0FDA BF B8FB3210 mov edi, 1032FBB8 ; ASCII "Corporate"
102A0FDF 8B55 10 mov edx, [ebp+10]
102A0FE2 83C9 FF or ecx, FFFFFFFF
102A0FE5 33C0 xor eax, eax
102A0FE7 F2:AE repne scas byte ptr es:[edi]
102A0FE9 F7D1 not ecx
102A0FEB 2BF9 sub edi, ecx
102A0FED 8BF7 mov esi, edi
102A0FEF 8BC1 mov eax, ecx
102A0FF1 8BFA mov edi, edx
102A0FF3 C1E9 02 shr ecx, 2
102A0FF6 F3:A5 rep movs dword ptr es:[edi], dwo>
102A0FF8 8BC8 mov ecx, eax
102A0FFA 83E1 03 and ecx, 3
102A0FFD F3:A4 rep movs byte ptr es:[edi], byte>
102A0FFF EB 2B jmp short 102A102C
102A1001 837D 10 00 cmp dword ptr [ebp+10], 0
102A1005 74 25 je short 102A102C
102A1007 BF A0FB3210 mov edi, 1032FBA0 ; ASCII "Corporate Multiple PC"
102A100C 8B55 10 mov edx, [ebp+10]
102A100F 83C9 FF or ecx, FFFFFFFF
102A1012 33C0 xor eax, eax
102A1014 F2:AE repne scas byte ptr es:[edi]
102A1016 F7D1 not ecx
102A1018 2BF9 sub edi, ecx
102A101A 8BF7 mov esi, edi
102A101C 8BC1 mov eax, ecx
102A101E 8BFA mov edi, edx
102A1020 C1E9 02 shr ecx, 2
102A1023 F3:A5 rep movs dword ptr es:[edi], dwo>
102A1025 8BC8 mov ecx, eax
102A1027 83E1 03 and ecx, 3
102A102A F3:A4 rep movs byte ptr es:[edi], byte>
102A102C EB 7A jmp short 102A10A8
102A102E 83BD 80FDFFFF 0>cmp dword ptr [ebp-280], 1
102A1035 75 6C jnz short 102A10A3
102A1037 83BD 7CFDFFFF 0>cmp dword ptr [ebp-284], 1
102A103E 74 09 je short 102A1049
102A1040 83BD 7CFDFFFF 0>cmp dword ptr [ebp-284], 0
102A1047 75 2D jnz short 102A1076
102A1049 837D 10 00 cmp dword ptr [ebp+10], 0
102A104D 74 25 je short 102A1074
102A104F BF B8FB3210 mov edi, 1032FBB8 ; ASCII "Corporate"
102A1054 8B55 10 mov edx, [ebp+10]
102A1057 83C9 FF or ecx, FFFFFFFF
102A105A 33C0 xor eax, eax
102A105C F2:AE repne scas byte ptr es:[edi]
102A105E F7D1 not ecx
102A1060 2BF9 sub edi, ecx
102A1062 8BF7 mov esi, edi
102A1064 8BC1 mov eax, ecx
102A1066 8BFA mov edi, edx
102A1068 C1E9 02 shr ecx, 2
102A106B F3:A5 rep movs dword ptr es:[edi], dwo>
102A106D 8BC8 mov ecx, eax
102A106F 83E1 03 and ecx, 3
102A1072 F3:A4 rep movs byte ptr es:[edi], byte>
102A1074 EB 2B jmp short 102A10A1
102A1076 837D 10 00 cmp dword ptr [ebp+10], 0
102A107A 74 25 je short 102A10A1
102A107C BF A0FB3210 mov edi, 1032FBA0 ; ASCII "Corporate Multiple PC"
102A1081 8B55 10 mov edx, [ebp+10]
102A1084 83C9 FF or ecx, FFFFFFFF
102A1087 33C0 xor eax, eax
102A1089 F2:AE repne scas byte ptr es:[edi]
102A108B F7D1 not ecx
102A108D 2BF9 sub edi, ecx
102A108F 8BF7 mov esi, edi
102A1091 8BC1 mov eax, ecx
102A1093 8BFA mov edi, edx
102A1095 C1E9 02 shr ecx, 2
102A1098 F3:A5 rep movs dword ptr es:[edi], dwo>
102A109A 8BC8 mov ecx, eax
102A109C 83E1 03 and ecx, 3
102A109F F3:A4 rep movs byte ptr es:[edi], byte>
102A10A1 EB 05 jmp short 102A10A8
102A10A3 ^ E9 2DFEFFFF jmp 102A0ED5
102A10A8 C685 60F9FFFF 0>mov byte ptr [ebp-6A0], 1
102A10AF 8B8D 68F9FFFF mov ecx, [ebp-698]
102A10B5 898D 78FDFFFF mov [ebp-288], ecx
102A10BB 8B95 60F9FFFF mov edx, [ebp-6A0]
102A10C1 81E2 FF000000 and edx, 0FF
102A10C7 85D2 test edx, edx
102A10C9 75 04 jnz short 102A10CF ; 第二处暴破掉 JNZ 修改为 JMP
102A10CB 33C0 xor eax, eax
102A10CD EB 67 jmp short 102A1136
102A10CF 837D 18 00 cmp dword ptr [ebp+18], 0
102A10D3 74 0B je short 102A10E0
102A10D5 8B45 18 mov eax, [ebp+18]
102A10D8 8B8D 80FDFFFF mov ecx, [ebp-280]
102A10DE 8908 mov [eax], ecx
102A10E0 837D 14 00 cmp dword ptr [ebp+14], 0
102A10E4 74 4B je short 102A1131
102A10E6 81BD 7CFDFFFF F>cmp dword ptr [ebp-284], 0FFFF
102A10F0 75 27 jnz short 102A1119 ; JNE 修改为 JE
102A10F2 BF 94FB3210 mov edi, 1032FB94 ; ASCII "Unlimited"
102A10F7 8B55 14 mov edx, [ebp+14]
102A10FA 83C9 FF or ecx, FFFFFFFF
102A10FD 33C0 xor eax, eax
102A10FF F2:AE repne scas byte ptr es:[edi]
102A1101 F7D1 not ecx
102A1103 2BF9 sub edi, ecx
102A1105 8BF7 mov esi, edi
102A1107 8BC1 mov eax, ecx
102A1109 8BFA mov edi, edx
102A110B C1E9 02 shr ecx, 2
102A110E F3:A5 rep movs dword ptr es:[edi], dwo>
102A1110 8BC8 mov ecx, eax
102A1112 83E1 03 and ecx, 3
102A1115 F3:A4 rep movs byte ptr es:[edi], byte>
102A1117 EB 18 jmp short 102A1131
102A1119 8B8D 7CFDFFFF mov ecx, [ebp-284]
102A111F 51 push ecx
102A1120 68 48F33010 push 1030F348 ; ASCII "%d"
102A1125 8B55 14 mov edx, [ebp+14]
102A1128 52 push edx
102A1129 E8 F8480000 call <jmp.&MSVCRT.sprintf>
102A112E 83C4 0C add esp, 0C
102A1131 B8 01000000 mov eax, 1
102A1136 5F pop edi
102A1137 5E pop esi
102A1138 8BE5 mov esp, ebp
102A113A 5D pop ebp
102A113B C3 retn |
|