Reverse/C++_CrackMe1/solve.md
2024-10-26 16:02:26 +08:00

34 KiB
Raw Blame History

计算serial这次的是c++

先上总体思路:

string name = Console.ReadLine(); 
//用户输入的Name
string guid = hwProfile.szHwProfileGuid.Replace("-", "").Replace("{", "").Replace("}", ""); 
//硬件GUID
string base64 = name + Convert.ToBase64String(Encoding.UTF8.GetBytes(guid)); 
//将GUID base64编码在开头加上name
byte[] hash = System.Security.Cryptography.SHA1.HashData(Encoding.UTF8.GetBytes(base64));
//将上面的base64组合计算sha1
byte[] halfHash = new byte[10];
Array.Copy(hash, 10, halfHash, 0, 10);
string hexHash = BitConverter.ToString(halfHash).Replace("-", "");
//只要后半段sha1校验值 <-v1
int sum = 0;
foreach (char c in name)
    sum += c;
//计算Name各位的Ascii值之和 <-v2
Console.WriteLine($"Serial: {hexHash}{sum * (name.Length + 5)}");
//Serial为v1加上(v2*name长度+5)

细节:(该加的注释我都加好了,我就不细讲了)

01001E5 | 55                   | push ebp                                   |
01001E5 | 8BEC                 | mov ebp,esp                                |
01001E5 | 6A FF                | push FFFFFFFF                              |
01001E5 | 68 BC540001          | push <c++_crackme1.sub_10054BC>            |
01001E5 | 64:A1 00000000       | mov eax,dword ptr fs:[0]                   |
01001E6 | 50                   | push eax                                   |
01001E6 | 81EC 24040000        | sub esp,424                                |
01001E6 | A1 28800001          | mov eax,dword ptr ds:[1008028]             | 01008028:"笔*扤5誱pd"
01001E6 | 33C5                 | xor eax,ebp                                |
01001E6 | 8945 F0              | mov dword ptr ss:[ebp-10],eax              |
01001E7 | 53                   | push ebx                                   |
01001E7 | 56                   | push esi                                   |
01001E7 | 57                   | push edi                                   |
01001E7 | 50                   | push eax                                   |
01001E7 | 8D45 F4              | lea eax,dword ptr ss:[ebp-C]               | [ebp-0C]:__except_handler4
01001E7 | 64:A3 00000000       | mov dword ptr fs:[0],eax                   |
01001E7 | 8BF1                 | mov esi,ecx                                |
01001E8 | 8D8D F4FBFFFF        | lea ecx,dword ptr ss:[ebp-40C]             |
01001E8 | 89B5 D8FBFFFF        | mov dword ptr ss:[ebp-428],esi             |
01001E8 | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
01001E9 | 33DB                 | xor ebx,ebx                                |
01001E9 | 8D8D ECFBFFFF        | lea ecx,dword ptr ss:[ebp-414]             |
01001E9 | 895D FC              | mov dword ptr ss:[ebp-4],ebx               |
01001E9 | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
01001EA | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             |
01001EA | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
01001EA | 8D8D D0FBFFFF        | lea ecx,dword ptr ss:[ebp-430]             |
01001EB | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
01001EB | 8D85 F4FBFFFF        | lea eax,dword ptr ss:[ebp-40C]             |
01001EC | 50                   | push eax                                   |
01001EC | C645 FC 03           | mov byte ptr ss:[ebp-4],3                  |
01001EC | 8B3D 34610001        | mov edi,dword ptr ds:[<Ordinal#4810>]      |
01001EC | 68 EB030000          | push 3EB                                   |
01001ED | 8BCE                 | mov ecx,esi                                |
01001ED | FFD7                 | call edi                                   |
01001ED | 8D8D F4FBFFFF        | lea ecx,dword ptr ss:[ebp-40C]             | [ebp-40C]: Name
01001ED | FF15 4C610001        | call dword ptr ds:[<Ordinal#5264>]         |
01001EE | 50                   | push eax                                   |
01001EE | 68 70680001          | push c++_crackme1.1006870                  |
01001EE | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
01001EE | FF15 88620001        | call dword ptr ds:[<Ordinal#293>]          |
01001EF | C645 FC 04           | mov byte ptr ss:[ebp-4],4                  |
01001EF | 8B8D E4FBFFFF        | mov ecx,dword ptr ss:[ebp-41C]             |
01001EF | 51                   | push ecx                                   |
01001EF | 8D8D F4FBFFFF        | lea ecx,dword ptr ss:[ebp-40C]             |
01001F0 | FF15 50610001        | call dword ptr ds:[<Ordinal#2614>]         |
01001F0 | 85C0                 | test eax,eax                               |
01001F0 | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
01001F1 | 0F9585 F3FBFFFF      | setne byte ptr ss:[ebp-40D]                |
01001F1 | C645 FC 03           | mov byte ptr ss:[ebp-4],3                  |
01001F1 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
01001F2 | 8BCE                 | mov ecx,esi                                |
01001F2 | 389D F3FBFFFF        | cmp byte ptr ss:[ebp-40D],bl               |
01001F2 | 0F84 D5050000        | je <c++_crackme1.Error1>                   |
01001F3 | 8D95 ECFBFFFF        | lea edx,dword ptr ss:[ebp-414]             | [ebp-414]: Serial
01001F3 | 52                   | push edx                                   |
01001F3 | 68 EC030000          | push 3EC                                   |
01001F3 | FFD7                 | call edi                                   |
01001F3 | 8D85 FCFBFFFF        | lea eax,dword ptr ss:[ebp-404]             |
01001F4 | 50                   | push eax                                   |
01001F4 | FF15 00600001        | call dword ptr ds:[<GetCurrentHwProfileW>] |
01001F4 | 85C0                 | test eax,eax                               |
01001F4 | 74 13                | je c++_crackme1.1001F63                    |
01001F5 | 8D8D 00FCFFFF        | lea ecx,dword ptr ss:[ebp-400]             |
01001F5 | 51                   | push ecx                                   |
01001F5 | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             | [ebp-418]:L"{21abf477-80...-806e6f6e6963}"
01001F5 | FF15 38610001        | call dword ptr ds:[<Ordinal#1312>]         |
01001F6 | 68 CC6A0001          | push c++_crackme1.1006ACC                  |
01001F6 | 68 74680001          | push c++_crackme1.1006874                  |
01001F6 | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             |
01001F7 | FF15 8C620001        | call dword ptr ds:[<Ordinal#11683>]        | 替换{为空
01001F7 | 68 CC6A0001          | push c++_crackme1.1006ACC                  |
01001F7 | 68 78680001          | push c++_crackme1.1006878                  |
01001F8 | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             |
01001F8 | FF15 8C620001        | call dword ptr ds:[<Ordinal#11683>]        | 替换}为空
01001F8 | 68 CC6A0001          | push c++_crackme1.1006ACC                  |
01001F9 | 68 7C680001          | push c++_crackme1.100687C                  |
01001F9 | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             |
01001F9 | FF15 8C620001        | call dword ptr ds:[<Ordinal#11683>]        | 替换-为空
01001FA | 8B85 E8FBFFFF        | mov eax,dword ptr ss:[ebp-418]             |
01001FA | 6A 03                | push 3                                     |
01001FA | 50                   | push eax                                   |
01001FA | 8D8D F0FCFFFF        | lea ecx,dword ptr ss:[ebp-310]             |
01001FB | 8D95 F4FCFFFF        | lea edx,dword ptr ss:[ebp-30C]             |
01001FB | 51                   | push ecx                                   |
01001FB | 8995 F0FCFFFF        | mov dword ptr ss:[ebp-310],edx             |
01001FC | E8 FA050000          | call <c++_crackme1.sub_10025C0>            |
01001FC | C645 FC 05           | mov byte ptr ss:[ebp-4],5                  |
01001FC | 8B85 F0FCFFFF        | mov eax,dword ptr ss:[ebp-310]             |
01001FD | 8BC8                 | mov ecx,eax                                |
01001FD | C785 40FFFFFF 0F0000 | mov dword ptr ss:[ebp-C0],F                |
01001FD | 899D 3CFFFFFF        | mov dword ptr ss:[ebp-C4],ebx              |
01001FE | 889D 2CFFFFFF        | mov byte ptr ss:[ebp-D4],bl                |
01001FE | 8D71 01              | lea esi,dword ptr ds:[ecx+1]               |
01001FE | EB 03                | jmp c++_crackme1.1001FF0                   |
01001FE | 8D49 00              | lea ecx,dword ptr ds:[ecx]                 |
01001FF | 8A11                 | mov dl,byte ptr ds:[ecx]                   |
01001FF | 41                   | inc ecx                                    |
01001FF | 3AD3                 | cmp dl,bl                                  |
01001FF | 75 F9                | jne c++_crackme1.1001FF0                   |
01001FF | 2BCE                 | sub ecx,esi                                |
01001FF | 8BF9                 | mov edi,ecx                                | 0x20
01001FF | 8DB5 2CFFFFFF        | lea esi,dword ptr ss:[ebp-D4]              |
0100200 | E8 8AF3FFFF          | call <c++_crackme1.sub_1001390>            |
0100200 | C645 FC 06           | mov byte ptr ss:[ebp-4],6                  |
0100200 | 83BD 40FFFFFF 10     | cmp dword ptr ss:[ebp-C0],10               |
0100201 | 8B85 2CFFFFFF        | mov eax,dword ptr ss:[ebp-D4]              |
0100201 | 73 02                | jae c++_crackme1.100201B                   |
0100201 | 8BC6                 | mov eax,esi                                |
0100201 | 8B95 3CFFFFFF        | mov edx,dword ptr ss:[ebp-C4]              |
0100202 | 52                   | push edx                                   |
0100202 | 50                   | push eax                                   |
0100202 | 8D85 D8FEFFFF        | lea eax,dword ptr ss:[ebp-128]             |
0100202 | 50                   | push eax                                   |
0100202 | E8 11F0FFFF          | call <c++_crackme1.EncodeBase64>           |
0100202 | 83C4 0C              | add esp,C                                  |
0100203 | C645 FC 07           | mov byte ptr ss:[ebp-4],7                  |
0100203 | 8B95 F4FBFFFF        | mov edx,dword ptr ss:[ebp-40C]             |
0100203 | 6A 03                | push 3                                     |
0100203 | 52                   | push edx                                   |
0100203 | 8D85 74FDFFFF        | lea eax,dword ptr ss:[ebp-28C]             |
0100204 | 8D8D 78FDFFFF        | lea ecx,dword ptr ss:[ebp-288]             |
0100204 | 50                   | push eax                                   |
0100204 | 898D 74FDFFFF        | mov dword ptr ss:[ebp-28C],ecx             | [ebp-28C]: Name
0100205 | E8 69050000          | call <c++_crackme1.sub_10025C0>            |
0100205 | C645 FC 08           | mov byte ptr ss:[ebp-4],8                  |
0100205 | 8B85 74FDFFFF        | mov eax,dword ptr ss:[ebp-28C]             |
0100206 | 8BC8                 | mov ecx,eax                                |
0100206 | C785 08FFFFFF 0F0000 | mov dword ptr ss:[ebp-F8],F                | [ebp-F8]:&"T傓"
0100206 | 899D 04FFFFFF        | mov dword ptr ss:[ebp-FC],ebx              |
0100207 | 889D F4FEFFFF        | mov byte ptr ss:[ebp-10C],bl               |
0100207 | 8D71 01              | lea esi,dword ptr ds:[ecx+1]               |
0100207 | 8D6424 00            | lea esp,dword ptr ss:[esp]                 | [esp]:_TppWorkerThread@4+347
0100208 | 8A11                 | mov dl,byte ptr ds:[ecx]                   |
0100208 | 41                   | inc ecx                                    |
0100208 | 3AD3                 | cmp dl,bl                                  |
0100208 | 75 F9                | jne c++_crackme1.1002080                   |
0100208 | 2BCE                 | sub ecx,esi                                |
0100208 | 8BF9                 | mov edi,ecx                                |
0100208 | 8DB5 F4FEFFFF        | lea esi,dword ptr ss:[ebp-10C]             |
0100209 | E8 FAF2FFFF          | call <c++_crackme1.sub_1001390>            |
0100209 | C645 FC 09           | mov byte ptr ss:[ebp-4],9                  | 09:'\t'
0100209 | 83BD ECFEFFFF 10     | cmp dword ptr ss:[ebp-114],10              |
010020A | 8B85 D8FEFFFF        | mov eax,dword ptr ss:[ebp-128]             |
010020A | 73 06                | jae c++_crackme1.10020AF                   |
010020A | 8D85 D8FEFFFF        | lea eax,dword ptr ss:[ebp-128]             |
010020A | 50                   | push eax                                   |
010020B | 8D8D D0FBFFFF        | lea ecx,dword ptr ss:[ebp-430]             |
010020B | FF15 3C610001        | call dword ptr ds:[<Ordinal#1313>]         |
010020B | 8D8D D8FEFFFF        | lea ecx,dword ptr ss:[ebp-128]             |
010020C | 51                   | push ecx                                   | ecx: BASE64后的GUID
010020C | 8D95 F4FEFFFF        | lea edx,dword ptr ss:[ebp-10C]             |
010020C | 52                   | push edx                                   | edx: Name
010020C | 8D85 BCFEFFFF        | lea eax,dword ptr ss:[ebp-144]             | [ebp-144]:&"T傓"
010020D | 50                   | push eax                                   |
010020D | E8 9A060000          | call <c++_crackme1.sub_1002770>            | 拼接Name与GUID
010020D | 83C4 0C              | add esp,C                                  |
010020D | 8B8D D0FEFFFF        | mov ecx,dword ptr ss:[ebp-130]             |
010020D | 8B85 BCFEFFFF        | mov eax,dword ptr ss:[ebp-144]             | [ebp-144]:&"T傓"
010020E | 8BD0                 | mov edx,eax                                |
010020E | 83F9 10              | cmp ecx,10                                 |
010020E | 73 08                | jae c++_crackme1.10020F4                   |
010020E | 8D95 BCFEFFFF        | lea edx,dword ptr ss:[ebp-144]             | [ebp-144]:&"T傓"
010020F | 8BC2                 | mov eax,edx                                |
010020F | 8D8D 78FEFFFF        | lea ecx,dword ptr ss:[ebp-188]             |
010020F | 898D B8FEFFFF        | mov dword ptr ss:[ebp-148],ecx             |
0100210 | C785 F8FDFFFF 012345 | mov dword ptr ss:[ebp-208],67452301        |
0100210 | C785 FCFDFFFF 89ABCD | mov dword ptr ss:[ebp-204],EFCDAB89        |
0100211 | C785 00FEFFFF FEDCBA | mov dword ptr ss:[ebp-200],98BADCFE        | [ebp-200]:"锰烫烫虄9"
0100211 | C785 04FEFFFF 765432 | mov dword ptr ss:[ebp-1FC],10325476        | [ebp-1FC]:class wil::shutdown_aware_object<class wil::details::FeatureStateManager> wil::details::g_featureStateManager+14
0100212 | C785 08FEFFFF F0E1D2 | mov dword ptr ss:[ebp-1F8],C3D2E1F0        | [ebp-1F8]:public: void __thiscall wil::details::FeatureStateManager::OnSRUMTimer(void)+40
0100213 | 899D 0CFEFFFF        | mov dword ptr ss:[ebp-1F4],ebx             |
0100213 | 899D 10FEFFFF        | mov dword ptr ss:[ebp-1F0],ebx             |
0100213 | 8D70 01              | lea esi,dword ptr ds:[eax+1]               |
0100214 | 8A08                 | mov cl,byte ptr ds:[eax]                   |
0100214 | 40                   | inc eax                                    |
0100214 | 3ACB                 | cmp cl,bl                                  |
0100214 | 75 F9                | jne c++_crackme1.1002141                   |
0100214 | 2BC6                 | sub eax,esi                                |
0100214 | 52                   | push edx                                   |
0100214 | 8DB5 F8FDFFFF        | lea esi,dword ptr ss:[ebp-208]             |
0100215 | E8 AA1C0000          | call <c++_crackme1.sub_1003E00>            |
0100215 | 8BCE                 | mov ecx,esi                                |
0100215 | E8 631D0000          | call <c++_crackme1.sub_1003EC0>            |
0100215 | 33D2                 | xor edx,edx                                |
0100215 | C785 24FFFFFF 070000 | mov dword ptr ss:[ebp-DC],7                |
0100216 | 899D 20FFFFFF        | mov dword ptr ss:[ebp-E0],ebx              |
0100216 | 66:8995 10FFFFFF     | mov word ptr ss:[ebp-F0],dx                |
0100217 | 8D95 48FFFFFF        | lea edx,dword ptr ss:[ebp-B8]              |
0100217 | 8BCE                 | mov ecx,esi                                |
0100217 | C645 FC 0C           | mov byte ptr ss:[ebp-4],C                  | 0C:'\f'
0100218 | E8 491E0000          | call <c++_crackme1.sub_1003FD0>            |
0100218 | 3AC3                 | cmp al,bl                                  |
0100218 | 74 2A                | je c++_crackme1.10021B5                    |
0100218 | 8D85 48FFFFFF        | lea eax,dword ptr ss:[ebp-B8]              |
0100219 | 8D50 02              | lea edx,dword ptr ds:[eax+2]               | SHA1(前面组合字符串)
0100219 | 66:8B08              | mov cx,word ptr ds:[eax]                   |
0100219 | 83C0 02              | add eax,2                                  |
0100219 | 66:3BCB              | cmp cx,bx                                  |
0100219 | 75 F5                | jne c++_crackme1.1002194                   |
0100219 | 2BC2                 | sub eax,edx                                |
010021A | D1F8                 | sar eax,1                                  |
010021A | 50                   | push eax                                   |
010021A | 8D85 48FFFFFF        | lea eax,dword ptr ss:[ebp-B8]              |
010021A | 8D8D 10FFFFFF        | lea ecx,dword ptr ss:[ebp-F0]              |
010021B | E8 BB1F0000          | call <c++_crackme1.sub_1004170>            |
010021B | 83BD 24FFFFFF 08     | cmp dword ptr ss:[ebp-DC],8                |
010021B | 8B85 10FFFFFF        | mov eax,dword ptr ss:[ebp-F0]              |
010021C | 73 06                | jae c++_crackme1.10021CA                   |
010021C | 8D85 10FFFFFF        | lea eax,dword ptr ss:[ebp-F0]              |
010021C | 50                   | push eax                                   |
010021C | 8D8D DCFBFFFF        | lea ecx,dword ptr ss:[ebp-424]             |
010021D | FF15 40610001        | call dword ptr ds:[<Ordinal#286>]          |
010021D | C645 FC 0D           | mov byte ptr ss:[ebp-4],D                  | 0D:'\r'
010021D | 8B85 DCFBFFFF        | mov eax,dword ptr ss:[ebp-424]             |
010021E | 8B40 F4              | mov eax,dword ptr ds:[eax-C]               |
010021E | 50                   | push eax                                   |
010021E | 99                   | cdq                                        |
010021E | 2BC2                 | sub eax,edx                                |
010021E | D1F8                 | sar eax,1                                  |
010021E | 50                   | push eax                                   |
010021E | 8D8D E0FBFFFF        | lea ecx,dword ptr ss:[ebp-420]             |
010021F | 51                   | push ecx                                   |
010021F | 8D8D DCFBFFFF        | lea ecx,dword ptr ss:[ebp-424]             |
010021F | FF15 48610001        | call dword ptr ds:[<Ordinal#7914>]         | 截取后半部分
010021F | 50                   | push eax                                   |
010021F | 8D8D DCFBFFFF        | lea ecx,dword ptr ss:[ebp-424]             |
0100220 | C645 FC 0E           | mov byte ptr ss:[ebp-4],E                  |
0100220 | FF15 44610001        | call dword ptr ds:[<Ordinal#1310>]         |
0100220 | 8D8D E0FBFFFF        | lea ecx,dword ptr ss:[ebp-420]             |
0100221 | C645 FC 0D           | mov byte ptr ss:[ebp-4],D                  | 0D:'\r'
0100221 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100221 | 8B95 F4FBFFFF        | mov edx,dword ptr ss:[ebp-40C]             |
0100222 | 8B7A F4              | mov edi,dword ptr ds:[edx-C]               |
0100222 | 33F6                 | xor esi,esi                                |
0100222 | 899D E0FBFFFF        | mov dword ptr ss:[ebp-420],ebx             |
0100223 | 3BFB                 | cmp edi,ebx                                |
0100223 | 7E 27                | jle c++_crackme1.100225B                   |
0100223 | EB 0A                | jmp c++_crackme1.1002240                   |
0100223 | 8DA424 00000000      | lea esp,dword ptr ss:[esp]                 | [esp]:_TppWorkerThread@4+347
0100223 | 8D49 00              | lea ecx,dword ptr ds:[ecx]                 |
0100224 | 56                   | push esi                                   | 累加Name各位ascii
0100224 | 8D8D F4FBFFFF        | lea ecx,dword ptr ss:[ebp-40C]             |
0100224 | FF15 90620001        | call dword ptr ds:[<Ordinal#1440>]         |
0100224 | 0FB7C0               | movzx eax,ax                               |
0100225 | 0185 E0FBFFFF        | add dword ptr ss:[ebp-420],eax             |
0100225 | 46                   | inc esi                                    |
0100225 | 3BF7                 | cmp esi,edi                                |
0100225 | 7C E5                | jl c++_crackme1.1002240                    |
0100225 | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
0100226 | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
0100226 | 8D8D D4FBFFFF        | lea ecx,dword ptr ss:[ebp-42C]             |
0100226 | FF15 78630001        | call dword ptr ds:[<Ordinal#296>]          |
0100227 | 6A 14                | push 14                                    |
0100227 | 53                   | push ebx                                   |
0100227 | 8D8D F8FBFFFF        | lea ecx,dword ptr ss:[ebp-408]             |
0100227 | 51                   | push ecx                                   |
0100227 | 8D8D ECFBFFFF        | lea ecx,dword ptr ss:[ebp-414]             | [ebp-414]: Serial
0100228 | C645 FC 10           | mov byte ptr ss:[ebp-4],10                 |
0100228 | FF15 48610001        | call dword ptr ds:[<Ordinal#7914>]         |
0100228 | 50                   | push eax                                   |
0100228 | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
0100229 | C645 FC 11           | mov byte ptr ss:[ebp-4],11                 |
0100229 | FF15 44610001        | call dword ptr ds:[<Ordinal#1310>]         |
0100229 | 8D8D F8FBFFFF        | lea ecx,dword ptr ss:[ebp-408]             |
010022A | C645 FC 10           | mov byte ptr ss:[ebp-4],10                 |
010022A | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
010022A | 68 CC6A0001          | push c++_crackme1.1006ACC                  |
010022B | 68 7C680001          | push c++_crackme1.100687C                  |
010022B | 8D8D ECFBFFFF        | lea ecx,dword ptr ss:[ebp-414]             |
010022B | FF15 8C620001        | call dword ptr ds:[<Ordinal#11683>]        | 替换serial中的-
010022C | 8B95 ECFBFFFF        | mov edx,dword ptr ss:[ebp-414]             |
010022C | 8B42 F4              | mov eax,dword ptr ds:[edx-C]               |
010022C | 83C0 EC              | add eax,FFFFFFEC                           |
010022D | 50                   | push eax                                   |
010022D | 6A 14                | push 14                                    |
010022D | 8D85 F8FBFFFF        | lea eax,dword ptr ss:[ebp-408]             |
010022D | 50                   | push eax                                   |
010022D | 8D8D ECFBFFFF        | lea ecx,dword ptr ss:[ebp-414]             |
010022E | FF15 48610001        | call dword ptr ds:[<Ordinal#7914>]         |
010022E | 50                   | push eax                                   |
010022E | 8D8D D4FBFFFF        | lea ecx,dword ptr ss:[ebp-42C]             |
010022E | C645 FC 12           | mov byte ptr ss:[ebp-4],12                 |
010022F | FF15 44610001        | call dword ptr ds:[<Ordinal#1310>]         |
010022F | 8D8D F8FBFFFF        | lea ecx,dword ptr ss:[ebp-408]             |
010022F | C645 FC 10           | mov byte ptr ss:[ebp-4],10                 |
0100230 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100230 | 8B8D D4FBFFFF        | mov ecx,dword ptr ss:[ebp-42C]             |
0100230 | 51                   | push ecx                                   |
0100230 | FF15 E8600001        | call dword ptr ds:[<_wtoi>]                | Serial额外部分会被提取
0100231 | 8B95 DCFBFFFF        | mov edx,dword ptr ss:[ebp-424]             |
0100231 | 8985 F8FBFFFF        | mov dword ptr ss:[ebp-408],eax             |
0100232 | DB85 F8FBFFFF        | fild dword ptr ss:[ebp-408]                |
0100232 | 83C4 04              | add esp,4                                  |
0100232 | 52                   | push edx                                   |
0100232 | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
0100233 | D99D F8FBFFFF        | fstp dword ptr ss:[ebp-408]                |
0100233 | FF15 50610001        | call dword ptr ds:[<Ordinal#2614>]         |
0100233 | 8B8D D8FBFFFF        | mov ecx,dword ptr ss:[ebp-428]             |
0100234 | 85C0                 | test eax,eax                               |
0100234 | 75 32                | jne <c++_crackme1.Error2>                  |
0100234 | D985 F8FBFFFF        | fld dword ptr ss:[ebp-408]                 | 某个数serial额外部分
0100234 | 83C7 05              | add edi,5                                  |
0100234 | DAB5 E0FBFFFF        | fidiv dword ptr ss:[ebp-420]               | / sum(asc(name))
0100235 | 89BD F8FBFFFF        | mov dword ptr ss:[ebp-408],edi             |
0100235 | DB85 F8FBFFFF        | fild dword ptr ss:[ebp-408]                | name.length+5
0100236 | DAE9                 | fucompp                                    |
0100236 | DFE0                 | fnstsw ax                                  |
0100236 | F6C4 44              | test ah,44                                 |
0100236 | 7A 0E                | jp <c++_crackme1.Error2>                   | 数需要满足: sum(asc(name))*(name.length+5)
0100236 | 6A 40                | push 40                                    | Success
0100236 | 68 80680001          | push c++_crackme1.1006880                  | 1006880:L"Good boy!"
0100237 | 68 98680001          | push c++_crackme1.1006898                  | 1006898:L"Correct!\nNow write your keygen. :P"
0100237 | EB 0C                | jmp c++_crackme1.1002384                   |
0100237 | 6A 30                | push 30                                    |
0100237 | 68 E0680001          | push c++_crackme1.10068E0                  | 10068E0:L"Bad boy"
0100237 | 68 F0680001          | push c++_crackme1.10068F0                  | 10068F0:L"Wrong serial!"
0100238 | FF15 54610001        | call dword ptr ds:[<Ordinal#7911>]         |
0100238 | 8D8D D4FBFFFF        | lea ecx,dword ptr ss:[ebp-42C]             |
0100239 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100239 | 8D8D E4FBFFFF        | lea ecx,dword ptr ss:[ebp-41C]             |
0100239 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
010023A | 8D8D DCFBFFFF        | lea ecx,dword ptr ss:[ebp-424]             |
010023A | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
010023A | 83BD 24FFFFFF 08     | cmp dword ptr ss:[ebp-DC],8                |
010023B | 72 10                | jb c++_crackme1.10023C7                    |
010023B | 8B85 10FFFFFF        | mov eax,dword ptr ss:[ebp-F0]              |
010023B | 50                   | push eax                                   |
010023B | FF15 DC630001        | call dword ptr ds:[<Ordinal#1300>]         |
010023C | 83C4 04              | add esp,4                                  |
010023C | 33C9                 | xor ecx,ecx                                |
010023C | BF 10000000          | mov edi,10                                 |
010023C | C785 24FFFFFF 070000 | mov dword ptr ss:[ebp-DC],7                |
010023D | 899D 20FFFFFF        | mov dword ptr ss:[ebp-E0],ebx              |
010023D | 66:898D 10FFFFFF     | mov word ptr ss:[ebp-F0],cx                |
010023E | C785 F8FDFFFF 012345 | mov dword ptr ss:[ebp-208],67452301        |
010023E | C785 FCFDFFFF 89ABCD | mov dword ptr ss:[ebp-204],EFCDAB89        |
010023F | C785 00FEFFFF FEDCBA | mov dword ptr ss:[ebp-200],98BADCFE        | [ebp-200]:"锰烫烫虄9"
0100240 | C785 04FEFFFF 765432 | mov dword ptr ss:[ebp-1FC],10325476        | [ebp-1FC]:class wil::shutdown_aware_object<class wil::details::FeatureStateManager> wil::details::g_featureStateManager+14
0100240 | C785 08FEFFFF F0E1D2 | mov dword ptr ss:[ebp-1F8],C3D2E1F0        | [ebp-1F8]:public: void __thiscall wil::details::FeatureStateManager::OnSRUMTimer(void)+40
0100241 | 899D 0CFEFFFF        | mov dword ptr ss:[ebp-1F4],ebx             |
0100241 | 899D 10FEFFFF        | mov dword ptr ss:[ebp-1F0],ebx             |
0100242 | 39BD D0FEFFFF        | cmp dword ptr ss:[ebp-130],edi             |
0100242 | 72 10                | jb c++_crackme1.100243B                    |
0100242 | 8B95 BCFEFFFF        | mov edx,dword ptr ss:[ebp-144]             | [ebp-144]:&"T傓"
0100243 | 52                   | push edx                                   |
0100243 | FF15 DC630001        | call dword ptr ds:[<Ordinal#1300>]         |
0100243 | 83C4 04              | add esp,4                                  |
0100243 | BE 0F000000          | mov esi,F                                  |
0100244 | 89B5 D0FEFFFF        | mov dword ptr ss:[ebp-130],esi             |
0100244 | 899D CCFEFFFF        | mov dword ptr ss:[ebp-134],ebx             |
0100244 | 889D BCFEFFFF        | mov byte ptr ss:[ebp-144],bl               |
0100245 | 39BD 08FFFFFF        | cmp dword ptr ss:[ebp-F8],edi              | [ebp-F8]:&"T傓"
0100245 | 72 10                | jb c++_crackme1.100246A                    |
0100245 | 8B85 F4FEFFFF        | mov eax,dword ptr ss:[ebp-10C]             |
0100246 | 50                   | push eax                                   |
0100246 | FF15 DC630001        | call dword ptr ds:[<Ordinal#1300>]         |
0100246 | 83C4 04              | add esp,4                                  |
0100246 | 8B85 74FDFFFF        | mov eax,dword ptr ss:[ebp-28C]             |
0100247 | 8D8D 78FDFFFF        | lea ecx,dword ptr ss:[ebp-288]             |
0100247 | 89B5 08FFFFFF        | mov dword ptr ss:[ebp-F8],esi              | [ebp-F8]:&"T傓"
0100247 | 899D 04FFFFFF        | mov dword ptr ss:[ebp-FC],ebx              |
0100248 | 889D F4FEFFFF        | mov byte ptr ss:[ebp-10C],bl               |
0100248 | 3BC1                 | cmp eax,ecx                                |
0100248 | 74 0A                | je c++_crackme1.1002496                    |
0100248 | 50                   | push eax                                   |
0100248 | FF15 EC600001        | call dword ptr ds:[<free>]                 |
0100249 | 83C4 04              | add esp,4                                  |
0100249 | 39BD ECFEFFFF        | cmp dword ptr ss:[ebp-114],edi             |
0100249 | 72 10                | jb c++_crackme1.10024AE                    |
0100249 | 8B95 D8FEFFFF        | mov edx,dword ptr ss:[ebp-128]             |
010024A | 52                   | push edx                                   |
010024A | FF15 DC630001        | call dword ptr ds:[<Ordinal#1300>]         |
010024A | 83C4 04              | add esp,4                                  |
010024A | 89B5 ECFEFFFF        | mov dword ptr ss:[ebp-114],esi             |
010024B | 899D E8FEFFFF        | mov dword ptr ss:[ebp-118],ebx             |
010024B | 889D D8FEFFFF        | mov byte ptr ss:[ebp-128],bl               |
010024C | 39BD 40FFFFFF        | cmp dword ptr ss:[ebp-C0],edi              |
010024C | 72 10                | jb c++_crackme1.10024D8                    |
010024C | 8B85 2CFFFFFF        | mov eax,dword ptr ss:[ebp-D4]              |
010024C | 50                   | push eax                                   |
010024C | FF15 DC630001        | call dword ptr ds:[<Ordinal#1300>]         |
010024D | 83C4 04              | add esp,4                                  |
010024D | 8B85 F0FCFFFF        | mov eax,dword ptr ss:[ebp-310]             |
010024D | 8D8D F4FCFFFF        | lea ecx,dword ptr ss:[ebp-30C]             |
010024E | 89B5 40FFFFFF        | mov dword ptr ss:[ebp-C0],esi              |
010024E | 899D 3CFFFFFF        | mov dword ptr ss:[ebp-C4],ebx              |
010024F | 889D 2CFFFFFF        | mov byte ptr ss:[ebp-D4],bl                |
010024F | 3BC1                 | cmp eax,ecx                                |
010024F | 74 1E                | je c++_crackme1.1002518                    |
010024F | 50                   | push eax                                   |
010024F | FF15 EC600001        | call dword ptr ds:[<free>]                 |
0100250 | 83C4 04              | add esp,4                                  |
0100250 | EB 12                | jmp c++_crackme1.1002518                   |
0100250 | 6A 30                | push 30                                    |
0100250 | 68 0C690001          | push c++_crackme1.100690C                  | 100690C:L"Error"
0100250 | 68 18690001          | push c++_crackme1.1006918                  | 1006918:L"Enter a name."
0100251 | FF15 54610001        | call dword ptr ds:[<Ordinal#7911>]         |
0100251 | 8D8D D0FBFFFF        | lea ecx,dword ptr ss:[ebp-430]             |
0100251 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100252 | 8D8D E8FBFFFF        | lea ecx,dword ptr ss:[ebp-418]             |
0100252 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100253 | 8D8D ECFBFFFF        | lea ecx,dword ptr ss:[ebp-414]             |
0100253 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100253 | 8D8D F4FBFFFF        | lea ecx,dword ptr ss:[ebp-40C]             |
0100254 | FF15 7C630001        | call dword ptr ds:[<Ordinal#902>]          |
0100254 | 8B4D F4              | mov ecx,dword ptr ss:[ebp-C]               | [ebp-0C]:__except_handler4
0100254 | 64:890D 00000000     | mov dword ptr fs:[0],ecx                   |
0100255 | 59                   | pop ecx                                    |
0100255 | 5F                   | pop edi                                    |
0100255 | 5E                   | pop esi                                    |
0100255 | 5B                   | pop ebx                                    |
0100255 | 8B4D F0              | mov ecx,dword ptr ss:[ebp-10]              |
0100255 | 33CD                 | xor ecx,ebp                                |
0100255 | E8 E4250000          | call c++_crackme1.1004B44                  |
0100256 | 8BE5                 | mov esp,ebp                                |
0100256 | 5D                   | pop ebp                                    |
0100256 | C3                   | ret                                        |