solved new crackme
This commit is contained in:
parent
b3a531b8a0
commit
0dbda5904e
23
cm/keygen/sp_keygen.deps.json
Normal file
23
cm/keygen/sp_keygen.deps.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v8.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v8.0": {
|
||||
"sp_keygen/1.0.0": {
|
||||
"runtime": {
|
||||
"sp_keygen.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"sp_keygen/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
BIN
cm/keygen/sp_keygen.dll
Normal file
BIN
cm/keygen/sp_keygen.dll
Normal file
Binary file not shown.
BIN
cm/keygen/sp_keygen.exe
Normal file
BIN
cm/keygen/sp_keygen.exe
Normal file
Binary file not shown.
13
cm/keygen/sp_keygen.runtimeconfig.json
Normal file
13
cm/keygen/sp_keygen.runtimeconfig.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net8.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "8.0.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
555
cm/solve.md
Normal file
555
cm/solve.md
Normal file
@ -0,0 +1,555 @@
|
||||
算SN码~~(不要看成算N码了~~
|
||||
|
||||
先上几组可用SN码:
|
||||
|
||||
```
|
||||
1A2A3A1A2A3A1C2C3C1C2C3C1A3B3B1A1A3B3B1A1A3B3B1A1A3B3B1A1A3B3B1A
|
||||
3C3B1C2C3B2B2C1B1B3B2B3C1A2A3A1A3B2C3C1B2C3A2A2B3A3C1B3A3A1C2B3A
|
||||
```
|
||||
|
||||
解释:
|
||||
|
||||
这里的SN码只接受64位长度,每4位一组,奇数位接受1~3数字,偶数位接受A~C字符
|
||||
|
||||
通过观察可以发现一块重要数据:
|
||||
|
||||
```
|
||||
Mem:
|
||||
5 6 7 8 9 A B C D E F 0 1 2 3 4
|
||||
0056F315 00 00 00 00 00 00 00 00 00 00 00[02 00 02]00 00 ................
|
||||
0056F325 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
0056F335 00 00 00 00 00[00 00 00]00 00 00 00 00 00 00 00 ................
|
||||
0056F345 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00[01 ................
|
||||
0056F355 00 01]00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
```
|
||||
|
||||
稍微整理之后可以得到:
|
||||
|
||||
```c#
|
||||
int[,] Data = {
|
||||
{ 2,0,2 },
|
||||
{ 0,0,0 },
|
||||
{ 1,0,1 }
|
||||
};
|
||||
//和Data对应的关系是
|
||||
// { 1A,1B,1C },
|
||||
// { 2A,2B,2C },
|
||||
// { 3A,3B,3C }
|
||||
```
|
||||
|
||||
结合EAX: [1]
|
||||
EBX: [0]*0x1A
|
||||
RESULT: 56F2C5+EAX+EBX,前两位要求RESULT不为0,后两位则要求为0,故我们可得到最初状态下的要求:
|
||||
|
||||
```
|
||||
一组前两位:[1A,3A,1C,3C]
|
||||
后两位:[2A,1B,2B,3B,2C]
|
||||
```
|
||||
|
||||
继续观察会发现以四位为一组的字符串,例如`1A2A`可以视为1A->2A,1A=0,也就是复制1A数据到2A上,1A填充0
|
||||
|
||||
观察right前最后的一点代码,可见最后要求Data得是这样的:(说白了就是交换位置)
|
||||
|
||||
```c#
|
||||
int[,] trueData = {
|
||||
{ 1,0,1 },
|
||||
{ 0,0,0 },
|
||||
{ 2,0,2 }
|
||||
};
|
||||
```
|
||||
|
||||
这样一来我们的SN码就有两种思路:
|
||||
|
||||
1. 爆破
|
||||
|
||||
如果你看了我的keygen,你会发现我用的就是爆破的方法...
|
||||
|
||||
```c#
|
||||
public static void CalcSerial()
|
||||
{
|
||||
StringBuilder result = new();
|
||||
Random random = new();
|
||||
do
|
||||
{
|
||||
result.Clear();
|
||||
string[] prefix = ["1A", "3A", "1C", "3C"];
|
||||
string[] suffix = ["2A", "1B", "2B", "3B", "2C"];
|
||||
while (result.Length < 64)
|
||||
{
|
||||
// 从prefix数组中随机选取一个元素
|
||||
int prefixIndex = random.Next(prefix.Length);
|
||||
string prefixSelected = prefix[prefixIndex];
|
||||
|
||||
// 从suffix数组中随机选取一个元素
|
||||
int suffixIndex = random.Next(suffix.Length);
|
||||
string suffixSelected = suffix[suffixIndex];
|
||||
|
||||
// 将选中的元素交换
|
||||
prefix[prefixIndex] = suffixSelected;
|
||||
suffix[suffixIndex] = prefixSelected;
|
||||
|
||||
// 组合选中的两个元素并添加到结果
|
||||
result.Append(prefixSelected);
|
||||
result.Append(suffixSelected);
|
||||
}
|
||||
} while(!Check(result.ToString()));
|
||||
|
||||
// 打印结果
|
||||
Console.WriteLine(result.ToString());
|
||||
}
|
||||
|
||||
public static bool Check(string serial)
|
||||
{
|
||||
int[,] Data = {
|
||||
{ 2,0,2 },
|
||||
{ 0,0,0 },
|
||||
{ 1,0,1 }
|
||||
};
|
||||
if (serial.Length != 64)
|
||||
return false;
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
int y1 = serial[i * 4] - '1';
|
||||
int x1 = serial[i * 4 + 1] - 'A';
|
||||
int y2 = serial[i * 4 + 2] - '1';
|
||||
int x2 = serial[i * 4 + 3] - 'A';
|
||||
Data[y2, x2] = Data[y1, x1];
|
||||
Data[y1, x1] = 0;
|
||||
}
|
||||
if (Data[0, 0] == 1 && Data[0, 2] == 1 && Data[2, 0] == 2 && Data[2, 2] == 2) //交换完成?
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
```
|
||||
|
||||
爆破这个很快,所以这是一个方法
|
||||
|
||||
2. 根据逻辑自己推SN,然后用无用数据填充到64位
|
||||
|
||||
//EX: 1A2A 3A1A 2A3A 1C2C 3C1C 2C3C //24
|
||||
//EX: 1A3B 3B1A 1A3B3B1A 1A3B3B1A1A3B3B1A1A3B3B1A //40
|
||||
|
||||
这里就有一组例子,前24位,我们将**2**0**2**与**1**0**1**交换,中间000用来临时存放数据,完成这24位实际上已经达成目标
|
||||
|
||||
后40位为无用操作,因为限制只能从非0位上移动数据,所以这里使用大量1A与3B作交换操作填充
|
||||
|
||||
细节:
|
||||
|
||||
```assembly
|
||||
004203B0 | 55 | push ebp | CheckBtnEVE
|
||||
004203B1 | 89E5 | mov ebp,esp |
|
||||
004203B3 | 81EC 88000000 | sub esp,88 |
|
||||
004203B9 | 899D 78FFFFFF | mov dword ptr ss:[ebp-88],ebx |
|
||||
004203BF | 89B5 7CFFFFFF | mov dword ptr ss:[ebp-84],esi |
|
||||
004203C5 | 897D 80 | mov dword ptr ss:[ebp-80],edi |
|
||||
004203C8 | 8945 F8 | mov dword ptr ss:[ebp-8],eax |
|
||||
004203CB | 8955 FC | mov dword ptr ss:[ebp-4],edx |
|
||||
004203CE | C745 84 00000000 | mov dword ptr ss:[ebp-7C],0 |
|
||||
004203D5 | C745 88 00000000 | mov dword ptr ss:[ebp-78],0 |
|
||||
004203DC | C745 8C 00000000 | mov dword ptr ss:[ebp-74],0 |
|
||||
004203E3 | C745 90 00000000 | mov dword ptr ss:[ebp-70],0 |
|
||||
004203EA | C745 94 00000000 | mov dword ptr ss:[ebp-6C],0 |
|
||||
004203F1 | C745 98 00000000 | mov dword ptr ss:[ebp-68],0 | [ebp-68]:&L"幌畐叱瘞"
|
||||
004203F8 | C745 9C 00000000 | mov dword ptr ss:[ebp-64],0 | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
004203FF | C745 A0 00000000 | mov dword ptr ss:[ebp-60],0 |
|
||||
00420406 | C745 A4 00000000 | mov dword ptr ss:[ebp-5C],0 |
|
||||
0042040D | C745 A8 00000000 | mov dword ptr ss:[ebp-58],0 | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
00420414 | C745 B0 00000000 | mov dword ptr ss:[ebp-50],0 |
|
||||
0042041B | C745 B4 00000000 | mov dword ptr ss:[ebp-4C],0 | [ebp-4C]:L"幌畐叱瘞"
|
||||
00420422 | C745 B8 00000000 | mov dword ptr ss:[ebp-48],0 |
|
||||
00420429 | C745 BC 00000000 | mov dword ptr ss:[ebp-44],0 |
|
||||
00420430 | C745 C0 00000000 | mov dword ptr ss:[ebp-40],0 |
|
||||
00420437 | C745 C4 00000000 | mov dword ptr ss:[ebp-3C],0 |
|
||||
0042043E | C745 C8 00000000 | mov dword ptr ss:[ebp-38],0 |
|
||||
00420445 | C745 CC 00000000 | mov dword ptr ss:[ebp-34],0 |
|
||||
0042044C | 8D4D EC | lea ecx,dword ptr ss:[ebp-14] |
|
||||
0042044F | 8D55 D4 | lea edx,dword ptr ss:[ebp-2C] |
|
||||
00420452 | B8 01000000 | mov eax,1 |
|
||||
00420457 | E8 84ADFEFF | call cm.40B1E0 |
|
||||
0042045C | E8 7FCDFEFF | call cm.40D1E0 |
|
||||
00420461 | 50 | push eax |
|
||||
00420462 | 85C0 | test eax,eax |
|
||||
00420464 | 0F85 5D050000 | jne cm.4209C7 |
|
||||
0042046A | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042046D | 8B80 40040000 | mov eax,dword ptr ds:[eax+440] |
|
||||
00420473 | B2 00 | mov dl,0 |
|
||||
00420475 | 8B4D F8 | mov ecx,dword ptr ss:[ebp-8] |
|
||||
00420478 | 8B89 40040000 | mov ecx,dword ptr ds:[ecx+440] |
|
||||
0042047E | 8B09 | mov ecx,dword ptr ds:[ecx] |
|
||||
00420480 | FF91 18020000 | call dword ptr ds:[ecx+218] |
|
||||
00420486 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420489 | 8B80 54040000 | mov eax,dword ptr ds:[eax+454] |
|
||||
0042048F | B2 01 | mov dl,1 |
|
||||
00420491 | E8 3A570C00 | call cm.4E5BD0 |
|
||||
00420496 | 8D45 CC | lea eax,dword ptr ss:[ebp-34] |
|
||||
00420499 | E8 3235FEFF | call cm.4039D0 |
|
||||
0042049E | C745 CC 00000000 | mov dword ptr ss:[ebp-34],0 |
|
||||
004204A5 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004204A8 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004204AE | 8D55 CC | lea edx,dword ptr ss:[ebp-34] |
|
||||
004204B1 | E8 4A9E0B00 | call <cm.GetText> | Get SN value
|
||||
004204B6 | 8B45 CC | mov eax,dword ptr ss:[ebp-34] | [ebp-34]:SN
|
||||
004204B9 | 85C0 | test eax,eax |
|
||||
004204BB | 74 03 | je cm.4204C0 |
|
||||
004204BD | 8B40 FC | mov eax,dword ptr ds:[eax-4] |
|
||||
004204C0 | 83F8 40 | cmp eax,40 | eax: length == 0x40
|
||||
004204C3 | 74 08 | je cm.4204CD |
|
||||
004204C5 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004204C8 | E8 93060000 | call <cm.WrongSN> |
|
||||
004204CD | C705 70F35600 01 | mov dword ptr ds:[56F370],1 | Loop index init: 1
|
||||
004204D7 | FF0D 70F35600 | dec dword ptr ds:[56F370] | SN共64位,这里循环32次,每次处理两位,[1~3][A~C]...
|
||||
004204DD | FF05 70F35600 | inc dword ptr ds:[56F370] | ---Loop Start
|
||||
004204E3 | 8D45 CC | lea eax,dword ptr ss:[ebp-34] |
|
||||
004204E6 | E8 E534FEFF | call cm.4039D0 |
|
||||
004204EB | C745 CC 00000000 | mov dword ptr ss:[ebp-34],0 |
|
||||
004204F2 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004204F5 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004204FB | 8D55 CC | lea edx,dword ptr ss:[ebp-34] |
|
||||
004204FE | E8 FD9D0B00 | call <cm.GetText> | Get SN
|
||||
00420503 | 8B55 CC | mov edx,dword ptr ss:[ebp-34] | [ebp-34]:SN
|
||||
00420506 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042050B | 8D0445 FFFFFFFF | lea eax,dword ptr ds:[eax*2-1] |
|
||||
00420512 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
00420517 | 83F8 30 | cmp eax,30 | >'0'
|
||||
0042051A | 7E 39 | jle <cm.WrongSN2> |
|
||||
0042051C | 8D45 C8 | lea eax,dword ptr ss:[ebp-38] |
|
||||
0042051F | E8 AC34FEFF | call cm.4039D0 |
|
||||
00420524 | C745 C8 00000000 | mov dword ptr ss:[ebp-38],0 |
|
||||
0042052B | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042052E | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420534 | 8D55 C8 | lea edx,dword ptr ss:[ebp-38] |
|
||||
00420537 | E8 C49D0B00 | call <cm.GetText> |
|
||||
0042053C | 8B55 C8 | mov edx,dword ptr ss:[ebp-38] | [ebp-38]:SN
|
||||
0042053F | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420544 | 8D0445 FFFFFFFF | lea eax,dword ptr ds:[eax*2-1] |
|
||||
0042054B | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
00420550 | 83F8 34 | cmp eax,34 | 34:'4'
|
||||
00420553 | 7C 0D | jl cm.420562 | <'4'
|
||||
00420555 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN2
|
||||
00420558 | E8 03060000 | call <cm.WrongSN> |
|
||||
0042055D | E9 65040000 | jmp cm.4209C7 |
|
||||
00420562 | 8D45 C4 | lea eax,dword ptr ss:[ebp-3C] |
|
||||
00420565 | E8 6634FEFF | call cm.4039D0 |
|
||||
0042056A | C745 C4 00000000 | mov dword ptr ss:[ebp-3C],0 |
|
||||
00420571 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420574 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
0042057A | 8D55 C4 | lea edx,dword ptr ss:[ebp-3C] |
|
||||
0042057D | E8 7E9D0B00 | call <cm.GetText> |
|
||||
00420582 | 8B55 C4 | mov edx,dword ptr ss:[ebp-3C] | [ebp-3C]:SN
|
||||
00420585 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042058A | D1E0 | shl eax,1 | <<1
|
||||
0042058C | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
00420591 | 83F8 40 | cmp eax,40 | 40:'@'
|
||||
00420594 | 7E 34 | jle <cm.WrongSN3> | >'@'
|
||||
00420596 | 8D45 C0 | lea eax,dword ptr ss:[ebp-40] |
|
||||
00420599 | E8 3234FEFF | call cm.4039D0 |
|
||||
0042059E | C745 C0 00000000 | mov dword ptr ss:[ebp-40],0 |
|
||||
004205A5 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004205A8 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004205AE | 8D55 C0 | lea edx,dword ptr ss:[ebp-40] |
|
||||
004205B1 | E8 4A9D0B00 | call <cm.GetText> |
|
||||
004205B6 | 8B55 C0 | mov edx,dword ptr ss:[ebp-40] | [ebp-40]:SN
|
||||
004205B9 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004205BE | D1E0 | shl eax,1 |
|
||||
004205C0 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
004205C5 | 83F8 44 | cmp eax,44 | 44:'D'
|
||||
004205C8 | 7C 0D | jl cm.4205D7 | <'D'
|
||||
004205CA | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN3
|
||||
004205CD | E8 8E050000 | call <cm.WrongSN> |
|
||||
004205D2 | E9 F0030000 | jmp cm.4209C7 |
|
||||
004205D7 | 833D 70F35600 20 | cmp dword ptr ds:[56F370],20 | 20:' '
|
||||
004205DE | 0F8C F9FEFFFF | jl cm.4204DD | Next Loop---
|
||||
004205E4 | C705 70F35600 01 | mov dword ptr ds:[56F370],1 | Loop index init 1
|
||||
004205EE | FF0D 70F35600 | dec dword ptr ds:[56F370] | 每四个一组,循环16次
|
||||
004205F4 | FF05 70F35600 | inc dword ptr ds:[56F370] | ---Loop Start
|
||||
004205FA | 8D45 BC | lea eax,dword ptr ss:[ebp-44] |
|
||||
004205FD | E8 CE33FEFF | call cm.4039D0 |
|
||||
00420602 | C745 BC 00000000 | mov dword ptr ss:[ebp-44],0 |
|
||||
00420609 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042060C | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420612 | 8D55 BC | lea edx,dword ptr ss:[ebp-44] |
|
||||
00420615 | E8 E69C0B00 | call <cm.GetText> |
|
||||
0042061A | 8B55 BC | mov edx,dword ptr ss:[ebp-44] | [ebp-44]:SN
|
||||
0042061D | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420622 | 8D0485 FDFFFFFF | lea eax,dword ptr ds:[eax*4-3] |
|
||||
00420629 | 0FB65C02 FF | movzx ebx,byte ptr ds:[edx+eax-1] |
|
||||
0042062E | 83EB 30 | sub ebx,30 | char2int(ebx)
|
||||
00420631 | 6BDB 1A | imul ebx,ebx,1A | ebx*=0x1A
|
||||
00420634 | 8D45 B8 | lea eax,dword ptr ss:[ebp-48] |
|
||||
00420637 | E8 9433FEFF | call cm.4039D0 |
|
||||
0042063C | C745 B8 00000000 | mov dword ptr ss:[ebp-48],0 |
|
||||
00420643 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420646 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
0042064C | 8D55 B8 | lea edx,dword ptr ss:[ebp-48] |
|
||||
0042064F | E8 AC9C0B00 | call <cm.GetText> |
|
||||
00420654 | 8B55 B8 | mov edx,dword ptr ss:[ebp-48] | [ebp-48]:SN
|
||||
00420657 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042065C | 8D0485 FEFFFFFF | lea eax,dword ptr ds:[eax*4-2] |
|
||||
00420663 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
00420668 | 8A8403 C5F25600 | mov al,byte ptr ds:[ebx+eax+56F2C5] |
|
||||
0042066F | 84C0 | test al,al |
|
||||
00420671 | 75 0D | jne cm.420680 |
|
||||
00420673 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN4
|
||||
00420676 | E8 E5040000 | call <cm.WrongSN> |
|
||||
0042067B | E9 47030000 | jmp cm.4209C7 |
|
||||
00420680 | 8D45 B4 | lea eax,dword ptr ss:[ebp-4C] | [ebp-4C]:L"幌畐叱瘞"
|
||||
00420683 | E8 4833FEFF | call cm.4039D0 |
|
||||
00420688 | C745 B4 00000000 | mov dword ptr ss:[ebp-4C],0 | [ebp-4C]:L"幌畐叱瘞"
|
||||
0042068F | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420692 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420698 | 8D55 B4 | lea edx,dword ptr ss:[ebp-4C] | [ebp-4C]:L"幌畐叱瘞"
|
||||
0042069B | E8 609C0B00 | call <cm.GetText> |
|
||||
004206A0 | 8B55 B4 | mov edx,dword ptr ss:[ebp-4C] | [ebp-4C]:SN
|
||||
004206A3 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004206A8 | 8D0485 FFFFFFFF | lea eax,dword ptr ds:[eax*4-1] |
|
||||
004206AF | 0FB65C02 FF | movzx ebx,byte ptr ds:[edx+eax-1] |
|
||||
004206B4 | 83EB 30 | sub ebx,30 | char2int(ebx)
|
||||
004206B7 | 6BDB 1A | imul ebx,ebx,1A | ebx*=0x1A
|
||||
004206BA | 8D45 B0 | lea eax,dword ptr ss:[ebp-50] |
|
||||
004206BD | E8 0E33FEFF | call cm.4039D0 |
|
||||
004206C2 | C745 B0 00000000 | mov dword ptr ss:[ebp-50],0 |
|
||||
004206C9 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004206CC | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004206D2 | 8D55 B0 | lea edx,dword ptr ss:[ebp-50] |
|
||||
004206D5 | E8 269C0B00 | call <cm.GetText> |
|
||||
004206DA | 8B55 B0 | mov edx,dword ptr ss:[ebp-50] | SN
|
||||
004206DD | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004206E2 | C1E0 02 | shl eax,2 |
|
||||
004206E5 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
004206EA | 8A8403 C5F25600 | mov al,byte ptr ds:[ebx+eax+56F2C5] |
|
||||
004206F1 | 84C0 | test al,al |
|
||||
004206F3 | 74 0D | je cm.420702 |
|
||||
004206F5 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN5
|
||||
004206F8 | E8 63040000 | call <cm.WrongSN> |
|
||||
004206FD | E9 C5020000 | jmp cm.4209C7 |
|
||||
00420702 | 8D45 A8 | lea eax,dword ptr ss:[ebp-58] | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
00420705 | E8 C632FEFF | call cm.4039D0 |
|
||||
0042070A | C745 A8 00000000 | mov dword ptr ss:[ebp-58],0 | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
00420711 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420714 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
0042071A | 8D55 A8 | lea edx,dword ptr ss:[ebp-58] | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
0042071D | E8 DE9B0B00 | call <cm.GetText> |
|
||||
00420722 | 8B55 A8 | mov edx,dword ptr ss:[ebp-58] | SN
|
||||
00420725 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042072A | 8D0485 FDFFFFFF | lea eax,dword ptr ds:[eax*4-3] |
|
||||
00420731 | 0FB65C02 FF | movzx ebx,byte ptr ds:[edx+eax-1] |
|
||||
00420736 | 83EB 30 | sub ebx,30 | char2int(ebx)
|
||||
00420739 | 8D45 A4 | lea eax,dword ptr ss:[ebp-5C] |
|
||||
0042073C | E8 8F32FEFF | call cm.4039D0 |
|
||||
00420741 | C745 A4 00000000 | mov dword ptr ss:[ebp-5C],0 |
|
||||
00420748 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042074B | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420751 | 8D55 A4 | lea edx,dword ptr ss:[ebp-5C] |
|
||||
00420754 | E8 A79B0B00 | call <cm.GetText> |
|
||||
00420759 | 8B55 A4 | mov edx,dword ptr ss:[ebp-5C] | SN
|
||||
0042075C | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420761 | 8D0485 FFFFFFFF | lea eax,dword ptr ds:[eax*4-1] |
|
||||
00420768 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
0042076D | 83E8 30 | sub eax,30 | char2int(eax)
|
||||
00420770 | 29C3 | sub ebx,eax | ebx-=eax
|
||||
00420772 | 895D AC | mov dword ptr ss:[ebp-54],ebx | s
|
||||
00420775 | 8B45 AC | mov eax,dword ptr ss:[ebp-54] |
|
||||
00420778 | 0FAFD8 | imul ebx,eax | ebx=(ebx-eax)*(ebx-eax)
|
||||
0042077B | 8D45 A0 | lea eax,dword ptr ss:[ebp-60] |
|
||||
0042077E | E8 4D32FEFF | call cm.4039D0 |
|
||||
00420783 | C745 A0 00000000 | mov dword ptr ss:[ebp-60],0 |
|
||||
0042078A | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042078D | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420793 | 8D55 A0 | lea edx,dword ptr ss:[ebp-60] |
|
||||
00420796 | E8 659B0B00 | call <cm.GetText> |
|
||||
0042079B | 8B55 A0 | mov edx,dword ptr ss:[ebp-60] | SN
|
||||
0042079E | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004207A3 | 8D0485 FEFFFFFF | lea eax,dword ptr ds:[eax*4-2] |
|
||||
004207AA | 0FB67402 FF | movzx esi,byte ptr ds:[edx+eax-1] |
|
||||
004207AF | 83EE 40 | sub esi,40 | A->1... C->3
|
||||
004207B2 | 8D45 9C | lea eax,dword ptr ss:[ebp-64] | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
004207B5 | E8 1632FEFF | call cm.4039D0 |
|
||||
004207BA | C745 9C 00000000 | mov dword ptr ss:[ebp-64],0 | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
004207C1 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004207C4 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004207CA | 8D55 9C | lea edx,dword ptr ss:[ebp-64] | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
004207CD | E8 2E9B0B00 | call <cm.GetText> |
|
||||
004207D2 | 8B55 9C | mov edx,dword ptr ss:[ebp-64] | SN
|
||||
004207D5 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004207DA | C1E0 02 | shl eax,2 |
|
||||
004207DD | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
004207E2 | 83E8 40 | sub eax,40 | A->1... C->3
|
||||
004207E5 | 29C6 | sub esi,eax |
|
||||
004207E7 | 8975 AC | mov dword ptr ss:[ebp-54],esi |
|
||||
004207EA | 8B45 AC | mov eax,dword ptr ss:[ebp-54] |
|
||||
004207ED | 8B55 AC | mov edx,dword ptr ss:[ebp-54] |
|
||||
004207F0 | 0FAFC2 | imul eax,edx | eax=(esi-eax)*(esi-eax)
|
||||
004207F3 | 01C3 | add ebx,eax |
|
||||
004207F5 | F7D3 | not ebx |
|
||||
004207F7 | 83FB 0A | cmp ebx,A | 0A:'\n'
|
||||
004207FA | 75 0D | jne cm.420809 | ?
|
||||
004207FC | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN6
|
||||
004207FF | E8 5C030000 | call <cm.WrongSN> |
|
||||
00420804 | E9 BE010000 | jmp cm.4209C7 |
|
||||
00420809 | 8D45 98 | lea eax,dword ptr ss:[ebp-68] | [ebp-68]:&L"幌畐叱瘞"
|
||||
0042080C | E8 BF31FEFF | call cm.4039D0 |
|
||||
00420811 | C745 98 00000000 | mov dword ptr ss:[ebp-68],0 | [ebp-68]:&L"幌畐叱瘞"
|
||||
00420818 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042081B | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420821 | 8D55 98 | lea edx,dword ptr ss:[ebp-68] | [ebp-68]:&L"幌畐叱瘞"
|
||||
00420824 | E8 D79A0B00 | call <cm.GetText> |
|
||||
00420829 | 8B55 98 | mov edx,dword ptr ss:[ebp-68] | [ebp-68]:&L"幌畐叱瘞"
|
||||
0042082C | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420831 | 8D0485 FFFFFFFF | lea eax,dword ptr ds:[eax*4-1] |
|
||||
00420838 | 0FB67402 FF | movzx esi,byte ptr ds:[edx+eax-1] |
|
||||
0042083D | 83EE 30 | sub esi,30 |
|
||||
00420840 | 6BF6 1A | imul esi,esi,1A | esi*=0x1A
|
||||
00420843 | 8D45 94 | lea eax,dword ptr ss:[ebp-6C] |
|
||||
00420846 | E8 8531FEFF | call cm.4039D0 |
|
||||
0042084B | C745 94 00000000 | mov dword ptr ss:[ebp-6C],0 |
|
||||
00420852 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420855 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
0042085B | 8D55 94 | lea edx,dword ptr ss:[ebp-6C] |
|
||||
0042085E | E8 9D9A0B00 | call <cm.GetText> |
|
||||
00420863 | 8B55 94 | mov edx,dword ptr ss:[ebp-6C] |
|
||||
00420866 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042086B | C1E0 02 | shl eax,2 |
|
||||
0042086E | 0FB67C02 FF | movzx edi,byte ptr ds:[edx+eax-1] |
|
||||
00420873 | 8D45 90 | lea eax,dword ptr ss:[ebp-70] |
|
||||
00420876 | E8 5531FEFF | call cm.4039D0 |
|
||||
0042087B | C745 90 00000000 | mov dword ptr ss:[ebp-70],0 |
|
||||
00420882 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420885 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
0042088B | 8D55 90 | lea edx,dword ptr ss:[ebp-70] |
|
||||
0042088E | E8 6D9A0B00 | call <cm.GetText> |
|
||||
00420893 | 8B55 90 | mov edx,dword ptr ss:[ebp-70] |
|
||||
00420896 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
0042089B | 8D0485 FDFFFFFF | lea eax,dword ptr ds:[eax*4-3] |
|
||||
004208A2 | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
004208A7 | 83E8 30 | sub eax,30 |
|
||||
004208AA | 6BD8 1A | imul ebx,eax,1A |
|
||||
004208AD | 8D45 8C | lea eax,dword ptr ss:[ebp-74] |
|
||||
004208B0 | E8 1B31FEFF | call cm.4039D0 |
|
||||
004208B5 | C745 8C 00000000 | mov dword ptr ss:[ebp-74],0 |
|
||||
004208BC | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004208BF | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
004208C5 | 8D55 8C | lea edx,dword ptr ss:[ebp-74] |
|
||||
004208C8 | E8 339A0B00 | call <cm.GetText> |
|
||||
004208CD | 8B55 8C | mov edx,dword ptr ss:[ebp-74] |
|
||||
004208D0 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
004208D5 | 8D0485 FEFFFFFF | lea eax,dword ptr ds:[eax*4-2] |
|
||||
004208DC | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
004208E1 | 8DBC3E C5F25600 | lea edi,dword ptr ds:[esi+edi+56F2C5] |
|
||||
004208E8 | 8DB403 C5F25600 | lea esi,dword ptr ds:[ebx+eax+56F2C5] |
|
||||
004208EF | FC | cld |
|
||||
004208F0 | A4 | movsb | esi->edi
|
||||
004208F1 | 8D45 88 | lea eax,dword ptr ss:[ebp-78] |
|
||||
004208F4 | E8 D730FEFF | call cm.4039D0 |
|
||||
004208F9 | C745 88 00000000 | mov dword ptr ss:[ebp-78],0 |
|
||||
00420900 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
00420903 | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420909 | 8D55 88 | lea edx,dword ptr ss:[ebp-78] |
|
||||
0042090C | E8 EF990B00 | call <cm.GetText> |
|
||||
00420911 | 8B55 88 | mov edx,dword ptr ss:[ebp-78] |
|
||||
00420914 | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420919 | 8D0485 FDFFFFFF | lea eax,dword ptr ds:[eax*4-3] |
|
||||
00420920 | 0FB65C02 FF | movzx ebx,byte ptr ds:[edx+eax-1] |
|
||||
00420925 | 83EB 30 | sub ebx,30 |
|
||||
00420928 | 6BDB 1A | imul ebx,ebx,1A | *=0x1A
|
||||
0042092B | 8D45 84 | lea eax,dword ptr ss:[ebp-7C] |
|
||||
0042092E | E8 9D30FEFF | call cm.4039D0 |
|
||||
00420933 | C745 84 00000000 | mov dword ptr ss:[ebp-7C],0 |
|
||||
0042093A | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
0042093D | 8B80 4C040000 | mov eax,dword ptr ds:[eax+44C] |
|
||||
00420943 | 8D55 84 | lea edx,dword ptr ss:[ebp-7C] |
|
||||
00420946 | E8 B5990B00 | call <cm.GetText> |
|
||||
0042094B | 8B55 84 | mov edx,dword ptr ss:[ebp-7C] |
|
||||
0042094E | A1 70F35600 | mov eax,dword ptr ds:[56F370] |
|
||||
00420953 | 8D0485 FEFFFFFF | lea eax,dword ptr ds:[eax*4-2] |
|
||||
0042095A | 0FB64402 FF | movzx eax,byte ptr ds:[edx+eax-1] |
|
||||
0042095F | C68403 C5F25600 | mov byte ptr ds:[ebx+eax+56F2C5],0 |
|
||||
00420967 | 833D 70F35600 10 | cmp dword ptr ds:[56F370],10 |
|
||||
0042096E | 0F8C 80FCFFFF | jl cm.4205F4 | Next Loop---
|
||||
00420974 | A0 20F35600 | mov al,byte ptr ds:[56F320] |
|
||||
00420979 | 3A05 22F35600 | cmp al,byte ptr ds:[56F322] |
|
||||
0042097F | 75 09 | jne <cm.WrongSN7> |
|
||||
00420981 | A0 22F35600 | mov al,byte ptr ds:[56F322] |
|
||||
00420986 | 3C 01 | cmp al,1 |
|
||||
00420988 | 74 0A | je cm.420994 | 1?1
|
||||
0042098A | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN7
|
||||
0042098D | E8 CE010000 | call <cm.WrongSN> |
|
||||
00420992 | EB 33 | jmp cm.4209C7 |
|
||||
00420994 | A0 54F35600 | mov al,byte ptr ds:[56F354] |
|
||||
00420999 | 3A05 56F35600 | cmp al,byte ptr ds:[56F356] |
|
||||
0042099F | 75 09 | jne <cm.WrongSN8> |
|
||||
004209A1 | A0 56F35600 | mov al,byte ptr ds:[56F356] |
|
||||
004209A6 | 3C 02 | cmp al,2 |
|
||||
004209A8 | 74 0A | je cm.4209B4 | 2?2
|
||||
004209AA | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] | WrongSN8
|
||||
004209AD | E8 AE010000 | call <cm.WrongSN> |
|
||||
004209B2 | EB 13 | jmp cm.4209C7 |
|
||||
004209B4 | 8B45 F8 | mov eax,dword ptr ss:[ebp-8] |
|
||||
004209B7 | 8B80 40040000 | mov eax,dword ptr ds:[eax+440] |
|
||||
004209BD | BA D8BD5200 | mov edx,cm.52BDD8 | 52BDD8:"Right"
|
||||
004209C2 | E8 89C90B00 | call cm.4DD350 |
|
||||
004209C7 | E8 E4AAFEFF | call cm.40B4B0 |
|
||||
004209CC | 8D45 84 | lea eax,dword ptr ss:[ebp-7C] |
|
||||
004209CF | E8 FC2FFEFF | call cm.4039D0 |
|
||||
004209D4 | C745 84 00000000 | mov dword ptr ss:[ebp-7C],0 |
|
||||
004209DB | 8D45 88 | lea eax,dword ptr ss:[ebp-78] |
|
||||
004209DE | E8 ED2FFEFF | call cm.4039D0 |
|
||||
004209E3 | C745 88 00000000 | mov dword ptr ss:[ebp-78],0 |
|
||||
004209EA | 8D45 8C | lea eax,dword ptr ss:[ebp-74] |
|
||||
004209ED | E8 DE2FFEFF | call cm.4039D0 |
|
||||
004209F2 | C745 8C 00000000 | mov dword ptr ss:[ebp-74],0 |
|
||||
004209F9 | 8D45 90 | lea eax,dword ptr ss:[ebp-70] |
|
||||
004209FC | E8 CF2FFEFF | call cm.4039D0 |
|
||||
00420A01 | C745 90 00000000 | mov dword ptr ss:[ebp-70],0 |
|
||||
00420A08 | 8D45 94 | lea eax,dword ptr ss:[ebp-6C] |
|
||||
00420A0B | E8 C02FFEFF | call cm.4039D0 |
|
||||
00420A10 | C745 94 00000000 | mov dword ptr ss:[ebp-6C],0 |
|
||||
00420A17 | 8D45 98 | lea eax,dword ptr ss:[ebp-68] | [ebp-68]:&L"幌畐叱瘞"
|
||||
00420A1A | E8 B12FFEFF | call cm.4039D0 |
|
||||
00420A1F | C745 98 00000000 | mov dword ptr ss:[ebp-68],0 | [ebp-68]:&L"幌畐叱瘞"
|
||||
00420A26 | 8D45 9C | lea eax,dword ptr ss:[ebp-64] | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
00420A29 | E8 A22FFEFF | call cm.4039D0 |
|
||||
00420A2E | C745 9C 00000000 | mov dword ptr ss:[ebp-64],0 | [ebp-64]:MsgWaitForMultipleObjectsEx+D8
|
||||
00420A35 | 8D45 A0 | lea eax,dword ptr ss:[ebp-60] |
|
||||
00420A38 | E8 932FFEFF | call cm.4039D0 |
|
||||
00420A3D | C745 A0 00000000 | mov dword ptr ss:[ebp-60],0 |
|
||||
00420A44 | 8D45 A4 | lea eax,dword ptr ss:[ebp-5C] |
|
||||
00420A47 | E8 842FFEFF | call cm.4039D0 |
|
||||
00420A4C | C745 A4 00000000 | mov dword ptr ss:[ebp-5C],0 |
|
||||
00420A53 | 8D45 A8 | lea eax,dword ptr ss:[ebp-58] | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
00420A56 | E8 752FFEFF | call cm.4039D0 |
|
||||
00420A5B | C745 A8 00000000 | mov dword ptr ss:[ebp-58],0 | [ebp-58]:GetWindowThreadProcessId+9B
|
||||
00420A62 | 8D45 B0 | lea eax,dword ptr ss:[ebp-50] |
|
||||
00420A65 | E8 662FFEFF | call cm.4039D0 |
|
||||
00420A6A | C745 B0 00000000 | mov dword ptr ss:[ebp-50],0 |
|
||||
00420A71 | 8D45 B4 | lea eax,dword ptr ss:[ebp-4C] | [ebp-4C]:L"幌畐叱瘞"
|
||||
00420A74 | E8 572FFEFF | call cm.4039D0 |
|
||||
00420A79 | C745 B4 00000000 | mov dword ptr ss:[ebp-4C],0 | [ebp-4C]:L"幌畐叱瘞"
|
||||
00420A80 | 8D45 B8 | lea eax,dword ptr ss:[ebp-48] |
|
||||
00420A83 | E8 482FFEFF | call cm.4039D0 |
|
||||
00420A88 | C745 B8 00000000 | mov dword ptr ss:[ebp-48],0 |
|
||||
00420A8F | 8D45 BC | lea eax,dword ptr ss:[ebp-44] |
|
||||
00420A92 | E8 392FFEFF | call cm.4039D0 |
|
||||
00420A97 | C745 BC 00000000 | mov dword ptr ss:[ebp-44],0 |
|
||||
00420A9E | 8D45 C0 | lea eax,dword ptr ss:[ebp-40] |
|
||||
00420AA1 | E8 2A2FFEFF | call cm.4039D0 |
|
||||
00420AA6 | C745 C0 00000000 | mov dword ptr ss:[ebp-40],0 |
|
||||
00420AAD | 8D45 C4 | lea eax,dword ptr ss:[ebp-3C] |
|
||||
00420AB0 | E8 1B2FFEFF | call cm.4039D0 |
|
||||
00420AB5 | C745 C4 00000000 | mov dword ptr ss:[ebp-3C],0 |
|
||||
00420ABC | 8D45 C8 | lea eax,dword ptr ss:[ebp-38] |
|
||||
00420ABF | E8 0C2FFEFF | call cm.4039D0 |
|
||||
00420AC4 | C745 C8 00000000 | mov dword ptr ss:[ebp-38],0 |
|
||||
00420ACB | 8D45 CC | lea eax,dword ptr ss:[ebp-34] |
|
||||
00420ACE | E8 FD2EFEFF | call cm.4039D0 |
|
||||
00420AD3 | C745 CC 00000000 | mov dword ptr ss:[ebp-34],0 |
|
||||
00420ADA | 58 | pop eax |
|
||||
00420ADB | 85C0 | test eax,eax |
|
||||
00420ADD | 74 05 | je cm.420AE4 |
|
||||
00420ADF | E8 3CABFEFF | call cm.40B620 |
|
||||
00420AE4 | 8B9D 78FFFFFF | mov ebx,dword ptr ss:[ebp-88] |
|
||||
00420AEA | 8BB5 7CFFFFFF | mov esi,dword ptr ss:[ebp-84] |
|
||||
00420AF0 | 8B7D 80 | mov edi,dword ptr ss:[ebp-80] |
|
||||
00420AF3 | C9 | leave |
|
||||
00420AF4 | C3 | ret |
|
||||
```
|
||||
|
163
cm/source/keygen1.sln
Normal file
163
cm/source/keygen1.sln
Normal file
@ -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
|
78
cm/source/sp_keygen/Program.cs
Normal file
78
cm/source/sp_keygen/Program.cs
Normal file
@ -0,0 +1,78 @@
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
CalcSerial();
|
||||
Console.ReadKey();
|
||||
}
|
||||
|
||||
public static void CalcSerial()
|
||||
{
|
||||
StringBuilder result = new();
|
||||
Random random = new();
|
||||
do
|
||||
{
|
||||
result.Clear();
|
||||
string[] prefix = ["1A", "3A", "1C", "3C"];
|
||||
string[] suffix = ["2A", "1B", "2B", "3B", "2C"];
|
||||
while (result.Length < 64)
|
||||
{
|
||||
// 从prefix数组中随机选取一个元素
|
||||
int prefixIndex = random.Next(prefix.Length);
|
||||
string prefixSelected = prefix[prefixIndex];
|
||||
|
||||
// 从suffix数组中随机选取一个元素
|
||||
int suffixIndex = random.Next(suffix.Length);
|
||||
string suffixSelected = suffix[suffixIndex];
|
||||
|
||||
// 将选中的元素交换
|
||||
prefix[prefixIndex] = suffixSelected;
|
||||
suffix[suffixIndex] = prefixSelected;
|
||||
|
||||
// 组合选中的两个元素并添加到结果
|
||||
result.Append(prefixSelected);
|
||||
result.Append(suffixSelected);
|
||||
}
|
||||
} while(!Check(result.ToString()));
|
||||
|
||||
// 打印结果
|
||||
Console.WriteLine(result.ToString());
|
||||
}
|
||||
|
||||
public static bool Check(string serial)
|
||||
{
|
||||
int[,] trueData = {
|
||||
{ 1,0,1 },
|
||||
{ 0,0,0 },
|
||||
{ 2,0,2 }
|
||||
};
|
||||
int[,] Data = {
|
||||
{ 2,0,2 },
|
||||
{ 0,0,0 },
|
||||
{ 1,0,1 }
|
||||
};
|
||||
//EX: 1A2A3A1A2A3A 1C2C3C1C2C3C //24
|
||||
//EX: 1A3B3B1A1A3B3B1A1A3B3B1A1A3B3B1A1A3B3B1A //40
|
||||
if (serial.Length != 64)
|
||||
return false;
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
int y1 = serial[i * 4] - '1';
|
||||
int x1 = serial[i * 4 + 1] - 'A';
|
||||
int y2 = serial[i * 4 + 2] - '1';
|
||||
int x2 = serial[i * 4 + 3] - 'A';
|
||||
Data[y2, x2] = Data[y1, x1];
|
||||
Data[y1, x1] = 0;
|
||||
}
|
||||
if (Data[0, 0] == 1 && Data[0, 2] == 1 && Data[2, 0] == 2 && Data[2, 2] == 2)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
63
cm/source/sp_keygen/Properties/Resources.Designer.cs
generated
Normal file
63
cm/source/sp_keygen/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace sp_keygen.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 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() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||
/// </summary>
|
||||
[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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
101
cm/source/sp_keygen/Properties/Resources.resx
Normal file
101
cm/source/sp_keygen/Properties/Resources.resx
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 1.3
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">1.3</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1">this is my long string</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
[base64 mime encoded serialized .NET Framework object]
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
8
cm/source/sp_keygen/Properties/launchSettings.json
Normal file
8
cm/source/sp_keygen/Properties/launchSettings.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"profiles": {
|
||||
"sp_keygen": {
|
||||
"commandName": "Project",
|
||||
"commandLineArgs": "chenx221\r\n123-456-789-X"
|
||||
}
|
||||
}
|
||||
}
|
25
cm/source/sp_keygen/sp_keygen.csproj
Normal file
25
cm/source/sp_keygen/sp_keygen.csproj
Normal file
@ -0,0 +1,25 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
Loading…
x
Reference in New Issue
Block a user