From 82372320dcac185f032453d255b54cd6fd4991a3 Mon Sep 17 00:00:00 2001 From: Chenx221 Date: Fri, 8 Nov 2024 14:36:15 +0800 Subject: [PATCH] solved new crackme --- Cerberus/info.txt | 3 + Cerberus/keygen.exe | Bin 0 -> 28672 bytes Cerberus/keygen/sp_keygen.deps.json | 23 ++ Cerberus/keygen/sp_keygen.dll | Bin 0 -> 7168 bytes Cerberus/keygen/sp_keygen.exe | Bin 0 -> 138752 bytes Cerberus/keygen/sp_keygen.runtimeconfig.json | 13 + Cerberus/solve.md | 287 ++++++++++++++++++ Cerberus/source/keygen1.sln | 163 ++++++++++ Cerberus/source/sp_keygen/Program.cs | 103 +++++++ .../Properties/Resources.Designer.cs | 63 ++++ .../sp_keygen/Properties/Resources.resx | 101 ++++++ .../sp_keygen/Properties/launchSettings.json | 8 + Cerberus/source/sp_keygen/sp_keygen.csproj | 25 ++ 13 files changed, 789 insertions(+) create mode 100644 Cerberus/info.txt create mode 100644 Cerberus/keygen.exe create mode 100644 Cerberus/keygen/sp_keygen.deps.json create mode 100644 Cerberus/keygen/sp_keygen.dll create mode 100644 Cerberus/keygen/sp_keygen.exe create mode 100644 Cerberus/keygen/sp_keygen.runtimeconfig.json create mode 100644 Cerberus/solve.md create mode 100644 Cerberus/source/keygen1.sln create mode 100644 Cerberus/source/sp_keygen/Program.cs create mode 100644 Cerberus/source/sp_keygen/Properties/Resources.Designer.cs create mode 100644 Cerberus/source/sp_keygen/Properties/Resources.resx create mode 100644 Cerberus/source/sp_keygen/Properties/launchSettings.json create mode 100644 Cerberus/source/sp_keygen/sp_keygen.csproj diff --git a/Cerberus/info.txt b/Cerberus/info.txt new file mode 100644 index 0000000..56dd3f3 --- /dev/null +++ b/Cerberus/info.txt @@ -0,0 +1,3 @@ +This is my first keygen. +It's written in visual c++. +You have to make a keygen and a tutorial. \ No newline at end of file diff --git a/Cerberus/keygen.exe b/Cerberus/keygen.exe new file mode 100644 index 0000000000000000000000000000000000000000..053bbf66395b5eb1f72e8af993501e285a566537 GIT binary patch literal 28672 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¨7GJOhZ0;ZU{MMv1_iI@2gsX3H9I>%c3nE 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 0; edi--) + { + eax = temp[edi]; + ebp = eax + ebp + 0x134A; + temp = Fun_403c80(temp); + } + string temp2 = temp; //edx + edi = 1; + for (ebx = 5; ebx > 0; ebx--) + { + ecx = temp2[0]; + eax = temp2[edi]; + eax += 0x23; + ebp += ecx + 0x134A; + ecx = eax * 3; + ecx *= 5; + edx = ecx * 5; + eax += edx * 4; + esi += eax * 2; + temp2 = Fun_403c80(temp2); + edi++; + } + edx = temp2[5]; + eax = 0x18; + ecx = v10; + eax -= edx; + ebp += ecx; + edx = temp2[2]; + eax ^= ebp; + esi += 0x3c; + int eax2 = 0x1337; + eax2 -= edx; + eax2 ^= esi; + return $"LNT-{eax2}-{eax}"; //user32._wsprintfA(edx,"%s-%d-%d","LNT",eax2,eax); //esi +} + +//反转字符串 +public static string Fun_403c80(string name) +{ + return new string(name.Reverse().ToArray()); +} +``` + +测试密钥: + +``` +chenx221 +LNT-72236375--441384786 +``` + +细节: + +```assembly +00401130 | 0F85 36020000 | jne keygen.40136C | +00401136 | 8B9424 78010000 | mov edx,dword ptr ss:[esp+178] | edx:EntryPoint +0040113D | 8D4C24 18 | lea ecx,dword ptr ss:[esp+18] | ecx:EntryPoint +00401141 | 6A 32 | push 32 | +00401143 | 51 | push ecx | ecx:EntryPoint +00401144 | 68 E8030000 | push 3E8 | +00401149 | 52 | push edx | edx:EntryPoint +0040114A | FF15 9C404000 | call dword ptr ds:[ 4 +00401163 | 8B8424 78010000 | mov eax,dword ptr ss:[esp+178] | +0040116A | 6A 30 | push 30 | +0040116C | 68 F0504000 | push keygen.4050F0 | 4050F0:"Cerberus Keygen" +00401171 | 68 A4504000 | push keygen.4050A4 | 4050A4:"Sorry name must be over 4 characters" +00401176 | 50 | push eax | +00401177 | FF15 98404000 | call dword ptr ds:[] | +0040117D | 5F | pop edi | edi:EntryPoint +0040117E | 5E | pop esi | esi:EntryPoint +0040117F | 5D | pop ebp | +00401180 | 33C0 | xor eax,eax | +00401182 | 5B | pop ebx | +00401183 | 81C4 64010000 | add esp,164 | +00401189 | C2 1000 | ret 10 | +0040118C | 33FF | xor edi,edi | edi:EntryPoint +0040118E | 85C9 | test ecx,ecx | ecx:EntryPoint +00401190 | 7E 56 | jle keygen.4011E8 | +00401192 | EB 04 | jmp keygen.401198 | +00401194 | 8B5C24 10 | mov ebx,dword ptr ss:[esp+10] | loop start +00401198 | 0FBE443C 18 | movsx eax,byte ptr ss:[esp+edi+18] | +0040119D | 05 6B050000 | add eax,56B | +004011A2 | 8BD0 | mov edx,eax | edx:EntryPoint +004011A4 | 81F2 28048900 | xor edx,890428 | edx:EntryPoint +004011AA | 03F2 | add esi,edx | esi:EntryPoint, edx:EntryPoint +004011AC | 83F9 09 | cmp ecx,9 | length +004011AF | 0FBE5424 1B | movsx edx,byte ptr ss:[esp+1B] | edx:EntryPoint +004011B4 | 7E 0F | jle keygen.4011C5 | +004011B6 | 03D1 | add edx,ecx | edx:EntryPoint, ecx:EntryPoint +004011B8 | 81F2 09020000 | xor edx,209 | edx:EntryPoint +004011BE | 0FAFD3 | imul edx,ebx | edx:EntryPoint +004011C1 | 03F2 | add esi,edx | esi:EntryPoint, edx:EntryPoint +004011C3 | EB 0D | jmp keygen.4011D2 | +004011C5 | 03D1 | add edx,ecx | edx:EntryPoint, ecx:EntryPoint +004011C7 | 81F2 09020000 | xor edx,209 | edx:EntryPoint +004011CD | 0FAFD6 | imul edx,esi | edx:EntryPoint, esi:EntryPoint +004011D0 | 03DA | add ebx,edx | edx:EntryPoint +004011D2 | 8BD0 | mov edx,eax | edx:EntryPoint +004011D4 | C1E2 07 | shl edx,7 | edx:EntryPoint +004011D7 | 03D0 | add edx,eax | edx:EntryPoint +004011D9 | 47 | inc edi | edi:EntryPoint +004011DA | 3BF9 | cmp edi,ecx | edi:EntryPoint, ecx:EntryPoint +004011DC | 8D04D0 | lea eax,dword ptr ds:[eax+edx*8] | +004011DF | 8D1483 | lea edx,dword ptr ds:[ebx+eax*4] | edx:EntryPoint +004011E2 | 895424 10 | mov dword ptr ss:[esp+10],edx | [esp+10]:___RtlUserThreadStart@8+2B, edx:EntryPoint +004011E6 | 7C AC | jl keygen.401194 | next loop +004011E8 | BF 05000000 | mov edi,5 | edi:EntryPoint +004011ED | 0FBE443C 18 | movsx eax,byte ptr ss:[esp+edi+18] | +004011F2 | 8D4C24 18 | lea ecx,dword ptr ss:[esp+18] | ecx:EntryPoint +004011F6 | 51 | push ecx | ecx:EntryPoint +004011F7 | 8DAC28 4A130000 | lea ebp,dword ptr ds:[eax+ebp+134A | +004011FE | E8 7D2A0000 | call keygen.403C80 | +00401203 | 83C4 04 | add esp,4 | +00401206 | 4F | dec edi | edi:EntryPoint +00401207 | 85FF | test edi,edi | edi:EntryPoint +00401209 | 7F E2 | jg keygen.4011ED | +0040120B | 8D543C 18 | lea edx,dword ptr ss:[esp+edi+18] | edx:EntryPoint +0040120F | 8D7C24 19 | lea edi,dword ptr ss:[esp+19] | edi:EntryPoint +00401213 | 895424 14 | mov dword ptr ss:[esp+14],edx | edx:EntryPoint +00401217 | BB 05000000 | mov ebx,5 | +0040121C | 8B4424 14 | mov eax,dword ptr ss:[esp+14] | +00401220 | 0FBE08 | movsx ecx,byte ptr ds:[eax] | ecx:EntryPoint +00401223 | 0FBE07 | movsx eax,byte ptr ds:[edi] | edi:EntryPoint +00401226 | 83C0 23 | add eax,23 | +00401229 | 8DAC29 4A130000 | lea ebp,dword ptr ds:[ecx+ebp+134A | +00401230 | 8D0C40 | lea ecx,dword ptr ds:[eax+eax*2] | ecx:EntryPoint +00401233 | 8D0C89 | lea ecx,dword ptr ds:[ecx+ecx*4] | ecx:EntryPoint +00401236 | 8D1489 | lea edx,dword ptr ds:[ecx+ecx*4] | edx:EntryPoint +00401239 | 8D4C24 18 | lea ecx,dword ptr ss:[esp+18] | ecx:EntryPoint +0040123D | 51 | push ecx | ecx:EntryPoint +0040123E | 8D0490 | lea eax,dword ptr ds:[eax+edx*4] | +00401241 | 8D3446 | lea esi,dword ptr ds:[esi+eax*2] | esi:EntryPoint +00401244 | E8 372A0000 | call keygen.403C80 | +00401249 | 83C4 04 | add esp,4 | +0040124C | 47 | inc edi | edi:EntryPoint +0040124D | 4B | dec ebx | +0040124E | 75 CC | jne keygen.40121C | +00401250 | 0FBE5424 1D | movsx edx,byte ptr ss:[esp+1D] | edx:EntryPoint +00401255 | 8B4C24 10 | mov ecx,dword ptr ss:[esp+10] | ecx:EntryPoint, [esp+10]:___RtlUserThreadStart@8+2B +00401259 | B8 18000000 | mov eax,18 | +0040125E | 2BC2 | sub eax,edx | edx:EntryPoint +00401260 | 03E9 | add ebp,ecx | ecx:EntryPoint +00401262 | 0FBE5424 1A | movsx edx,byte ptr ss:[esp+1A] | edx:EntryPoint +00401267 | 33C5 | xor eax,ebp | +00401269 | 83C6 3C | add esi,3C | esi:EntryPoint +0040126C | 50 | push eax | +0040126D | B8 37130000 | mov eax,1337 | +00401272 | 2BC2 | sub eax,edx | edx:EntryPoint +00401274 | 8D8C24 B0000000 | lea ecx,dword ptr ss:[esp+B0] | ecx:EntryPoint +0040127B | 33C6 | xor eax,esi | esi:EntryPoint +0040127D | 8D9424 14010000 | lea edx,dword ptr ss:[esp+114] | edx:EntryPoint +00401284 | 50 | push eax | +00401285 | 51 | push ecx | ecx:EntryPoint +00401286 | 68 98504000 | push keygen.405098 | 405098:"%s-%d-%d" +0040128B | 52 | push edx | edx:EntryPoint +0040128C | FF15 A0404000 | call dword ptr ds:[] | +00401292 | 8BBC24 8C010000 | mov edi,dword ptr ss:[esp+18C] | edi:EntryPoint +00401299 | 8B35 9C404000 | mov esi,dword ptr ds:[] | +004012D7 | 5F | pop edi | edi:EntryPoint +004012D8 | 5E | pop esi | esi:EntryPoint +004012D9 | 5D | pop ebp | +004012DA | 33C0 | xor eax,eax | +004012DC | 5B | pop ebx | +004012DD | 81C4 64010000 | add esp,164 | +004012E3 | C2 1000 | ret 10 | +004012E6 | 8DB424 10010000 | lea esi,dword ptr ss:[esp+110] | esi:EntryPoint +004012ED | 8D4424 48 | lea eax,dword ptr ss:[esp+48] | +004012F1 | 8A10 | mov dl,byte ptr ds:[eax] | +004012F3 | 8A1E | mov bl,byte ptr ds:[esi] | esi:EntryPoint +004012F5 | 8ACA | mov cl,dl | +004012F7 | 3AD3 | cmp dl,bl | +004012F9 | 75 1E | jne keygen.401319 | +004012FB | 84C9 | test cl,cl | +004012FD | 74 16 | je keygen.401315 | +004012FF | 8A50 01 | mov dl,byte ptr ds:[eax+1] | +00401302 | 8A5E 01 | mov bl,byte ptr ds:[esi+1] | +00401305 | 8ACA | mov cl,dl | +00401307 | 3AD3 | cmp dl,bl | +00401309 | 75 0E | jne keygen.401319 | +0040130B | 83C0 02 | add eax,2 | +0040130E | 83C6 02 | add esi,2 | esi:EntryPoint +00401311 | 84C9 | test cl,cl | +00401313 | 75 DC | jne keygen.4012F1 | +00401315 | 33C0 | xor eax,eax | +00401317 | EB 05 | jmp keygen.40131E | +00401319 | 1BC0 | sbb eax,eax | +0040131B | 83D8 FF | sbb eax,FFFFFFFF | +0040131E | 85C0 | test eax,eax | +00401320 | 75 25 | jne keygen.401347 | +00401322 | 6A 40 | push 40 | +00401324 | 68 F0504000 | push keygen.4050F0 | 4050F0:"Cerberus Keygen" +00401329 | 68 44504000 | push keygen.405044 | 405044:"Good job cracker!\n\nNow write a keygen and a tutorial." +0040132E | 57 | push edi | edi:EntryPoint +0040132F | FF15 98404000 | call dword ptr ds:[] | +00401335 | 5F | pop edi | edi:EntryPoint +00401336 | 5E | pop esi | esi:EntryPoint +00401337 | 5D | pop ebp | +00401338 | B8 01000000 | mov eax,1 | +0040133D | 5B | pop ebx | +0040133E | 81C4 64010000 | add esp,164 | +00401344 | C2 1000 | ret 10 | +00401347 | 6A 10 | push 10 | +00401349 | 68 F0504000 | push keygen.4050F0 | 4050F0:"Cerberus Keygen" +0040134E | 68 30504000 | push keygen.405030 | 405030:"Wrong!\n\nTry again!" +00401353 | 57 | push edi | edi:EntryPoint +00401354 | FF15 98404000 | call dword ptr ds:[] | +0040135A | 5F | pop edi | edi:EntryPoint +0040135B | 5E | pop esi | esi:EntryPoint +0040135C | 5D | pop ebp | +0040135D | B8 01000000 | mov eax,1 | +00401362 | 5B | pop ebx | +00401363 | 81C4 64010000 | add esp,164 | +00401369 | C2 1000 | ret 10 | +``` + +(按钮事件 EP往上翻一点就到了) \ No newline at end of file diff --git a/Cerberus/source/keygen1.sln b/Cerberus/source/keygen1.sln new file mode 100644 index 0000000..3f0a221 --- /dev/null +++ b/Cerberus/source/keygen1.sln @@ -0,0 +1,163 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35303.130 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "keygen1", "keygen1\keygen1.csproj", "{D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "keygen2", "keygen2\keygen2.csproj", "{2446CB50-1882-4219-9DB0-E7F5517E6E20}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "keygen3", "keygen3\keygen3.csproj", "{BC47A6DE-7F9D-4D65-A996-69FB778C95F3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GiveMeSerial", "GiveMeSerial\GiveMeSerial.vcxproj", "{E3604156-7DF2-4B5F-AECA-64786B92F38C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DllInjector", "DllInjector\DllInjector.csproj", "{A5A24406-1296-457B-91A3-60E67511D807}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GetSerial", "GetSerial\GetSerial.vcxproj", "{85044A5C-C4A3-4C79-9AD5-6895F61F8515}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GuessSerial", "GuessSerial\GuessSerial.csproj", "{7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Validator", "Validator\Validator.csproj", "{6BE1ED72-6CA9-4442-B529-C867A9D6904C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FindKey", "FindKey\FindKey.csproj", "{D5E3C871-EA87-48E7-9287-E96B8410EB18}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sp_keygen", "sp_keygen\sp_keygen.csproj", "{D6614743-D01E-4899-A5E7-B4E45BD1B033}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|x64.ActiveCfg = Debug|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|x64.Build.0 = Debug|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|x86.ActiveCfg = Debug|x86 + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Debug|x86.Build.0 = Debug|x86 + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|Any CPU.Build.0 = Release|Any CPU + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|x64.ActiveCfg = Release|x64 + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|x64.Build.0 = Release|x64 + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|x86.ActiveCfg = Release|x86 + {D0E162E3-FC99-4405-BEE1-AB85D9D41DA9}.Release|x86.Build.0 = Release|x86 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|x64.ActiveCfg = Debug|x64 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|x64.Build.0 = Debug|x64 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|x86.ActiveCfg = Debug|x86 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Debug|x86.Build.0 = Debug|x86 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|Any CPU.Build.0 = Release|Any CPU + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|x64.ActiveCfg = Release|x64 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|x64.Build.0 = Release|x64 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|x86.ActiveCfg = Release|x86 + {2446CB50-1882-4219-9DB0-E7F5517E6E20}.Release|x86.Build.0 = Release|x86 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|x64.ActiveCfg = Debug|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|x64.Build.0 = Debug|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|x86.ActiveCfg = Debug|x86 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Debug|x86.Build.0 = Debug|x86 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|Any CPU.Build.0 = Release|Any CPU + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|x64.ActiveCfg = Release|x64 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|x64.Build.0 = Release|x64 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|x86.ActiveCfg = Release|x86 + {BC47A6DE-7F9D-4D65-A996-69FB778C95F3}.Release|x86.Build.0 = Release|x86 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|Any CPU.Build.0 = Debug|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|x64.ActiveCfg = Debug|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|x64.Build.0 = Debug|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|x86.ActiveCfg = Debug|Win32 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Debug|x86.Build.0 = Debug|Win32 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|Any CPU.ActiveCfg = Release|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|Any CPU.Build.0 = Release|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|x64.ActiveCfg = Release|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|x64.Build.0 = Release|x64 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|x86.ActiveCfg = Release|Win32 + {E3604156-7DF2-4B5F-AECA-64786B92F38C}.Release|x86.Build.0 = Release|Win32 + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|x64.ActiveCfg = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|x64.Build.0 = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|x86.ActiveCfg = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Debug|x86.Build.0 = Debug|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Release|Any CPU.Build.0 = Release|Any CPU + {A5A24406-1296-457B-91A3-60E67511D807}.Release|x64.ActiveCfg = Release|x64 + {A5A24406-1296-457B-91A3-60E67511D807}.Release|x64.Build.0 = Release|x64 + {A5A24406-1296-457B-91A3-60E67511D807}.Release|x86.ActiveCfg = Release|x86 + {A5A24406-1296-457B-91A3-60E67511D807}.Release|x86.Build.0 = Release|x86 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|Any CPU.ActiveCfg = Debug|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|Any CPU.Build.0 = Debug|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|x64.ActiveCfg = Debug|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|x64.Build.0 = Debug|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|x86.ActiveCfg = Debug|Win32 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Debug|x86.Build.0 = Debug|Win32 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|Any CPU.ActiveCfg = Release|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|Any CPU.Build.0 = Release|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|x64.ActiveCfg = Release|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|x64.Build.0 = Release|x64 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|x86.ActiveCfg = Release|Win32 + {85044A5C-C4A3-4C79-9AD5-6895F61F8515}.Release|x86.Build.0 = Release|Win32 + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|x64.ActiveCfg = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|x64.Build.0 = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|x86.ActiveCfg = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Debug|x86.Build.0 = Debug|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|Any CPU.Build.0 = Release|Any CPU + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x64.ActiveCfg = Release|x64 + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x64.Build.0 = Release|x64 + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x86.ActiveCfg = Release|x86 + {7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x86.Build.0 = Release|x86 + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|x64.ActiveCfg = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|x64.Build.0 = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|x86.ActiveCfg = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Debug|x86.Build.0 = Debug|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|Any CPU.Build.0 = Release|Any CPU + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x64.ActiveCfg = Release|x64 + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x64.Build.0 = Release|x64 + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x86.ActiveCfg = Release|x86 + {6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x86.Build.0 = Release|x86 + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|x64.ActiveCfg = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|x64.Build.0 = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|x86.ActiveCfg = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Debug|x86.Build.0 = Debug|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|Any CPU.Build.0 = Release|Any CPU + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|x64.ActiveCfg = Release|x64 + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|x64.Build.0 = Release|x64 + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|x86.ActiveCfg = Release|x86 + {D5E3C871-EA87-48E7-9287-E96B8410EB18}.Release|x86.Build.0 = Release|x86 + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|x64.ActiveCfg = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|x64.Build.0 = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Debug|x86.Build.0 = Debug|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|Any CPU.Build.0 = Release|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|x64.ActiveCfg = Release|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|x64.Build.0 = Release|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|x86.ActiveCfg = Release|Any CPU + {D6614743-D01E-4899-A5E7-B4E45BD1B033}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {01ED3EE8-E89A-4A27-AF68-EF2490CB6BD7} + EndGlobalSection +EndGlobal diff --git a/Cerberus/source/sp_keygen/Program.cs b/Cerberus/source/sp_keygen/Program.cs new file mode 100644 index 0000000..ae50dd0 --- /dev/null +++ b/Cerberus/source/sp_keygen/Program.cs @@ -0,0 +1,103 @@ +namespace sp_keygen +{ + internal class Program + { + static void Main() + { + Console.Write("Name: "); + string? name = Console.ReadLine(); + if (string.IsNullOrEmpty(name)) + { + Console.WriteLine("Please input name."); + return; + } + else if (name.Length <= 4) + { + Console.WriteLine("Name must be longer than 4 characters."); + return; + } + Console.WriteLine($"Serial: {CalcSerial(name)}"); + Console.ReadKey(); + } + + public static string CalcSerial(string name) + { + int name_length = name.Length; + int esi = 0x18; + int ebx = 0x400; + int ebp = 0x32; + int ecx = name_length; + int eax, edx, edi, v10 = 0; + foreach (char c in name) + { + eax = c; + eax += 0x56B; + edx = eax; + edx ^= 0x890428; + esi += edx; + edx = name[3]; + if (ecx <= 9) + { + edx += ecx; + edx ^= 0x209; + edx *= esi; + ebx += edx; + } + else + { + edx += ecx; + edx ^= 0x209; + edx *= ebx; + esi += edx; + } + edx = eax; + edx <<= 7; + edx += eax; + eax += edx * 8; + v10 = ebx + eax * 4; + ebx = v10; //first loop not run + } + string temp = name; + for (edi = 5; edi > 0; edi--) + { + eax = temp[edi]; + ebp = eax + ebp + 0x134A; + temp = Fun_403c80(temp); + } + string temp2 = temp; //edx + edi = 1; + for (ebx = 5; ebx > 0; ebx--) + { + ecx = temp2[0]; + eax = temp2[edi]; + eax += 0x23; + ebp += ecx + 0x134A; + ecx = eax * 3; + ecx *= 5; + edx = ecx * 5; + eax += edx * 4; + esi += eax * 2; + temp2 = Fun_403c80(temp2); + edi++; + } + edx = temp2[5]; + eax = 0x18; + ecx = v10; + eax -= edx; + ebp += ecx; + edx = temp2[2]; + eax ^= ebp; + esi += 0x3c; + int eax2 = 0x1337; + eax2 -= edx; + eax2 ^= esi; + return $"LNT-{eax2}-{eax}"; //user32._wsprintfA(edx,"%s-%d-%d","LNT",eax2,eax); //esi + } + + //反转字符串 + public static string Fun_403c80(string name) + { + return new string(name.Reverse().ToArray()); + } + } +} diff --git a/Cerberus/source/sp_keygen/Properties/Resources.Designer.cs b/Cerberus/source/sp_keygen/Properties/Resources.Designer.cs new file mode 100644 index 0000000..41461b5 --- /dev/null +++ b/Cerberus/source/sp_keygen/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace sp_keygen.Properties { + using System; + + + ///

+ /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("sp_keygen.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Cerberus/source/sp_keygen/Properties/Resources.resx b/Cerberus/source/sp_keygen/Properties/Resources.resx new file mode 100644 index 0000000..4fdb1b6 --- /dev/null +++ b/Cerberus/source/sp_keygen/Properties/Resources.resx @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Cerberus/source/sp_keygen/Properties/launchSettings.json b/Cerberus/source/sp_keygen/Properties/launchSettings.json new file mode 100644 index 0000000..d32d884 --- /dev/null +++ b/Cerberus/source/sp_keygen/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "sp_keygen": { + "commandName": "Project", + "commandLineArgs": "chenx221\r\n123-456-789-X" + } + } +} \ No newline at end of file diff --git a/Cerberus/source/sp_keygen/sp_keygen.csproj b/Cerberus/source/sp_keygen/sp_keygen.csproj new file mode 100644 index 0000000..6ca6170 --- /dev/null +++ b/Cerberus/source/sp_keygen/sp_keygen.csproj @@ -0,0 +1,25 @@ + + + + Exe + net8.0 + enable + enable + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + +