solved new crackme

This commit is contained in:
Chenx221 2024-10-12 14:45:33 +08:00
parent f3e0b5aaf4
commit ab7bb39fdb
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021
14 changed files with 1468 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,6 @@
RULEZ:
To solve this crackme u will have firstly to enable the first button thats leads to the crackme.Then u must enable the other button and textboxes and find the algo to solve it and make a keyGen for it!
Patching is allowed ONLY for enabling the buttons and textboxes!!
GOOD CRACKING!!!!!!
Thanks to -> Breaker
Coder -> Breaker

View File

@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"keygen1/1.0.0": {
"runtime": {
"keygen1.dll": {}
}
}
}
},
"libraries": {
"keygen1/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
}
}
}

View File

@ -0,0 +1,592 @@
计算serial前要先把按钮的禁用状态取消掉
```
第一个窗体的Button
139E: 00->01
第二个窗体的Button
22CA: 00->01
第二个窗体的TextBox
22E8: 00->01
2310: 00->01
2335: 00->01
235F: 00->01
```
计算serial
直接给成品:
```
以下索引全部从1开始
name2长度*name长度*age长度 字符串 p1
name从第二位开始取3个并翻转 p2
name2从第三位开始取2个 p3
name、name2、age字符串长度求和 p4
age从第二位开始取1个 p5
name长度 p6
p1-p2p3p4-p5p6
```
细节:
```assembly
00402460 | 55 | push ebp |
00402461 | 8BEC | mov ebp,esp |
00402463 | 83EC 0C | sub esp,C |
00402466 | 68 F6104000 | push <JMP.&__vbaExceptHandler> |
0040246B | 64:A1 00000000 | mov eax,dword ptr fs:[0] |
00402471 | 50 | push eax |
00402472 | 64:8925 00000000 | mov dword ptr fs:[0],esp |
00402479 | 81EC 28020000 | sub esp,228 |
0040247F | 53 | push ebx | ebx:__vbaStrCopy
00402480 | 56 | push esi |
00402481 | 57 | push edi | edi:"\\J@"
00402482 | 8965 F4 | mov dword ptr ss:[ebp-C],esp |
00402485 | C745 F8 D0104000 | mov dword ptr ss:[ebp-8],breaker's crackme |
0040248C | 8B7D 08 | mov edi,dword ptr ss:[ebp+8] | [ebp+08]:"\\J@"
0040248F | 8BC7 | mov eax,edi | edi:"\\J@"
00402491 | 83E0 01 | and eax,1 |
00402494 | 8945 FC | mov dword ptr ss:[ebp-4],eax |
00402497 | 83E7 FE | and edi,FFFFFFFE | edi:"\\J@"
0040249A | 57 | push edi | edi:"\\J@"
0040249B | 897D 08 | mov dword ptr ss:[ebp+8],edi | [ebp+08]:"\\J@"
0040249E | 8B0F | mov ecx,dword ptr ds:[edi] | edi:"\\J@"
004024A0 | FF51 04 | call dword ptr ds:[ecx+4] |
004024A3 | 8B1D 94104000 | mov ebx,dword ptr ds:[<__vbaStrCopy>] | ebx:__vbaStrCopy
004024A9 | 33F6 | xor esi,esi |
004024AB | BA 501F4000 | mov edx,breaker's crackme # 3_patched.401F | edx:L"Hello", 401F50:L"Hello"
004024B0 | 8D4D E4 | lea ecx,dword ptr ss:[ebp-1C] |
004024B3 | 8975 E8 | mov dword ptr ss:[ebp-18],esi |
004024B6 | 8975 E4 | mov dword ptr ss:[ebp-1C],esi |
004024B9 | 8975 E0 | mov dword ptr ss:[ebp-20],esi |
004024BC | 8975 DC | mov dword ptr ss:[ebp-24],esi |
004024BF | 8975 D8 | mov dword ptr ss:[ebp-28],esi |
004024C2 | 8975 D4 | mov dword ptr ss:[ebp-2C],esi |
004024C5 | 8975 D0 | mov dword ptr ss:[ebp-30],esi |
004024C8 | 8975 CC | mov dword ptr ss:[ebp-34],esi |
004024CB | 8975 C8 | mov dword ptr ss:[ebp-38],esi |
004024CE | 8975 C4 | mov dword ptr ss:[ebp-3C],esi |
004024D1 | 8975 C0 | mov dword ptr ss:[ebp-40],esi |
004024D4 | 8975 BC | mov dword ptr ss:[ebp-44],esi |
004024D7 | 8975 B8 | mov dword ptr ss:[ebp-48],esi |
004024DA | 8975 B4 | mov dword ptr ss:[ebp-4C],esi |
004024DD | 8975 B0 | mov dword ptr ss:[ebp-50],esi |
004024E0 | 8975 AC | mov dword ptr ss:[ebp-54],esi |
004024E3 | 8975 A8 | mov dword ptr ss:[ebp-58],esi |
004024E6 | 8975 A4 | mov dword ptr ss:[ebp-5C],esi |
004024E9 | 8975 A0 | mov dword ptr ss:[ebp-60],esi |
004024EC | 8975 9C | mov dword ptr ss:[ebp-64],esi |
004024EF | 8975 98 | mov dword ptr ss:[ebp-68],esi |
004024F2 | 8975 94 | mov dword ptr ss:[ebp-6C],esi |
004024F5 | 8975 90 | mov dword ptr ss:[ebp-70],esi |
004024F8 | 8975 8C | mov dword ptr ss:[ebp-74],esi |
004024FB | 8975 88 | mov dword ptr ss:[ebp-78],esi |
004024FE | 8975 84 | mov dword ptr ss:[ebp-7C],esi |
00402501 | 8975 80 | mov dword ptr ss:[ebp-80],esi |
00402504 | 89B5 70FFFFFF | mov dword ptr ss:[ebp-90],esi |
0040250A | 89B5 60FFFFFF | mov dword ptr ss:[ebp-A0],esi |
00402510 | 89B5 50FFFFFF | mov dword ptr ss:[ebp-B0],esi |
00402516 | 89B5 40FFFFFF | mov dword ptr ss:[ebp-C0],esi |
0040251C | 89B5 30FFFFFF | mov dword ptr ss:[ebp-D0],esi |
00402522 | 89B5 20FFFFFF | mov dword ptr ss:[ebp-E0],esi |
00402528 | 89B5 10FFFFFF | mov dword ptr ss:[ebp-F0],esi |
0040252E | 89B5 00FFFFFF | mov dword ptr ss:[ebp-100],esi |
00402534 | 89B5 F0FEFFFF | mov dword ptr ss:[ebp-110],esi |
0040253A | 89B5 E0FEFFFF | mov dword ptr ss:[ebp-120],esi |
00402540 | 89B5 D0FEFFFF | mov dword ptr ss:[ebp-130],esi |
00402546 | 89B5 C0FEFFFF | mov dword ptr ss:[ebp-140],esi |
0040254C | 89B5 B0FEFFFF | mov dword ptr ss:[ebp-150],esi |
00402552 | 89B5 A0FEFFFF | mov dword ptr ss:[ebp-160],esi |
00402558 | 89B5 90FEFFFF | mov dword ptr ss:[ebp-170],esi |
0040255E | 89B5 80FEFFFF | mov dword ptr ss:[ebp-180],esi |
00402564 | 89B5 70FEFFFF | mov dword ptr ss:[ebp-190],esi |
0040256A | 89B5 60FEFFFF | mov dword ptr ss:[ebp-1A0],esi |
00402570 | 89B5 50FEFFFF | mov dword ptr ss:[ebp-1B0],esi |
00402576 | 89B5 30FEFFFF | mov dword ptr ss:[ebp-1D0],esi |
0040257C | FFD3 | call ebx | ebx:__vbaStrCopy
0040257E | BA 601F4000 | mov edx,breaker's crackme # 3_patched.401F | edx:L"Hello", 401F60:L"ARE YOU CRAZY??? WRONG"
00402583 | 8D4D E8 | lea ecx,dword ptr ss:[ebp-18] |
00402586 | FFD3 | call ebx | ebx:__vbaStrCopy
00402588 | 8B17 | mov edx,dword ptr ds:[edi] | edx:L"Hello", edi:"\\J@"
0040258A | 57 | push edi | edi:"\\J@"
0040258B | FF92 FC020000 | call dword ptr ds:[edx+2FC] |
00402591 | 50 | push eax |
00402592 | 8D45 98 | lea eax,dword ptr ss:[ebp-68] |
00402595 | 50 | push eax |
00402596 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
0040259C | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
0040259E | 8D55 CC | lea edx,dword ptr ss:[ebp-34] | [ebp-34]: Name
004025A1 | 52 | push edx | edx:L"Hello"
004025A2 | 53 | push ebx | ebx:__vbaStrCopy
004025A3 | 8B0B | mov ecx,dword ptr ds:[ebx] | ebx:__vbaStrCopy
004025A5 | FF91 A0000000 | call dword ptr ds:[ecx+A0] |
004025AB | 3BC6 | cmp eax,esi |
004025AD | DBE2 | fnclex |
004025AF | 7D 12 | jge breaker's crackme # 3_patched.4025C3 |
004025B1 | 68 A0000000 | push A0 |
004025B6 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
004025BB | 53 | push ebx | ebx:__vbaStrCopy
004025BC | 50 | push eax |
004025BD | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
004025C3 | 8B07 | mov eax,dword ptr ds:[edi] | edi:"\\J@"
004025C5 | 57 | push edi | edi:"\\J@"
004025C6 | FF90 00030000 | call dword ptr ds:[eax+300] |
004025CC | 8D4D 94 | lea ecx,dword ptr ss:[ebp-6C] |
004025CF | 50 | push eax |
004025D0 | 51 | push ecx |
004025D1 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
004025D7 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
004025D9 | 8D45 BC | lea eax,dword ptr ss:[ebp-44] | [ebp-44]: Name2
004025DC | 50 | push eax |
004025DD | 53 | push ebx | ebx:__vbaStrCopy
004025DE | 8B13 | mov edx,dword ptr ds:[ebx] | edx:L"Hello", ebx:__vbaStrCopy
004025E0 | FF92 A0000000 | call dword ptr ds:[edx+A0] |
004025E6 | 3BC6 | cmp eax,esi |
004025E8 | DBE2 | fnclex |
004025EA | 7D 12 | jge breaker's crackme # 3_patched.4025FE |
004025EC | 68 A0000000 | push A0 |
004025F1 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
004025F6 | 53 | push ebx | ebx:__vbaStrCopy
004025F7 | 50 | push eax |
004025F8 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
004025FE | 8B0F | mov ecx,dword ptr ds:[edi] | edi:"\\J@"
00402600 | 57 | push edi | edi:"\\J@"
00402601 | FF91 04030000 | call dword ptr ds:[ecx+304] |
00402607 | 8D55 84 | lea edx,dword ptr ss:[ebp-7C] |
0040260A | 50 | push eax |
0040260B | 52 | push edx | edx:L"Hello"
0040260C | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402612 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
00402614 | 8D4D AC | lea ecx,dword ptr ss:[ebp-54] | [ebp-54]: Age
00402617 | 51 | push ecx |
00402618 | 53 | push ebx | ebx:__vbaStrCopy
00402619 | 8B03 | mov eax,dword ptr ds:[ebx] | ebx:__vbaStrCopy
0040261B | FF90 A0000000 | call dword ptr ds:[eax+A0] |
00402621 | 3BC6 | cmp eax,esi |
00402623 | DBE2 | fnclex |
00402625 | 7D 12 | jge breaker's crackme # 3_patched.402639 |
00402627 | 68 A0000000 | push A0 |
0040262C | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
00402631 | 53 | push ebx | ebx:__vbaStrCopy
00402632 | 50 | push eax |
00402633 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
00402639 | 8B17 | mov edx,dword ptr ds:[edi] | edx:L"Hello", edi:"\\J@"
0040263B | 57 | push edi | edi:"\\J@"
0040263C | FF92 FC020000 | call dword ptr ds:[edx+2FC] |
00402642 | 50 | push eax |
00402643 | 8D45 A4 | lea eax,dword ptr ss:[ebp-5C] |
00402646 | 50 | push eax |
00402647 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
0040264D | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
0040264F | 8D55 DC | lea edx,dword ptr ss:[ebp-24] | [ebp-24]: Name
00402652 | 52 | push edx | edx:L"Hello"
00402653 | 53 | push ebx | ebx:__vbaStrCopy
00402654 | 8B0B | mov ecx,dword ptr ds:[ebx] | ebx:__vbaStrCopy
00402656 | FF91 A0000000 | call dword ptr ds:[ecx+A0] |
0040265C | 3BC6 | cmp eax,esi |
0040265E | DBE2 | fnclex |
00402660 | 7D 12 | jge breaker's crackme # 3_patched.402674 |
00402662 | 68 A0000000 | push A0 |
00402667 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
0040266C | 53 | push ebx | ebx:__vbaStrCopy
0040266D | 50 | push eax |
0040266E | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
00402674 | 8B07 | mov eax,dword ptr ds:[edi] | edi:"\\J@"
00402676 | 57 | push edi | edi:"\\J@"
00402677 | FF90 00030000 | call dword ptr ds:[eax+300] |
0040267D | 8D4D A0 | lea ecx,dword ptr ss:[ebp-60] |
00402680 | 50 | push eax |
00402681 | 51 | push ecx |
00402682 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402688 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
0040268A | 8D45 D8 | lea eax,dword ptr ss:[ebp-28] | [ebp-28]: Name2
0040268D | 50 | push eax |
0040268E | 53 | push ebx | ebx:__vbaStrCopy
0040268F | 8B13 | mov edx,dword ptr ds:[ebx] | edx:L"Hello", ebx:__vbaStrCopy
00402691 | FF92 A0000000 | call dword ptr ds:[edx+A0] |
00402697 | 3BC6 | cmp eax,esi |
00402699 | DBE2 | fnclex |
0040269B | 7D 12 | jge breaker's crackme # 3_patched.4026AF |
0040269D | 68 A0000000 | push A0 |
004026A2 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
004026A7 | 53 | push ebx | ebx:__vbaStrCopy
004026A8 | 50 | push eax |
004026A9 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
004026AF | 8B0F | mov ecx,dword ptr ds:[edi] | edi:"\\J@"
004026B1 | 57 | push edi | edi:"\\J@"
004026B2 | FF91 04030000 | call dword ptr ds:[ecx+304] |
004026B8 | 8D55 9C | lea edx,dword ptr ss:[ebp-64] |
004026BB | 50 | push eax |
004026BC | 52 | push edx | edx:L"Hello"
004026BD | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
004026C3 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
004026C5 | 8D4D D4 | lea ecx,dword ptr ss:[ebp-2C] | [ebp-2C]: Age
004026C8 | 51 | push ecx |
004026C9 | 53 | push ebx | ebx:__vbaStrCopy
004026CA | 8B03 | mov eax,dword ptr ds:[ebx] | ebx:__vbaStrCopy
004026CC | FF90 A0000000 | call dword ptr ds:[eax+A0] |
004026D2 | 3BC6 | cmp eax,esi |
004026D4 | DBE2 | fnclex |
004026D6 | 7D 12 | jge breaker's crackme # 3_patched.4026EA |
004026D8 | 68 A0000000 | push A0 |
004026DD | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
004026E2 | 53 | push ebx | ebx:__vbaStrCopy
004026E3 | 50 | push eax |
004026E4 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
004026EA | 8B45 CC | mov eax,dword ptr ss:[ebp-34] |
004026ED | 8D95 60FFFFFF | lea edx,dword ptr ss:[ebp-A0] |
004026F3 | 8985 78FFFFFF | mov dword ptr ss:[ebp-88],eax | [ebp-88]:GetWindowExtEx+59
004026F9 | 52 | push edx | length3
004026FA | 8D85 70FFFFFF | lea eax,dword ptr ss:[ebp-90] |
00402700 | 6A 02 | push 2 | index2
00402702 | 8D8D 50FFFFFF | lea ecx,dword ptr ss:[ebp-B0] |
00402708 | 50 | push eax | Name
00402709 | 51 | push ecx | store
0040270A | C785 68FFFFFF 030000 | mov dword ptr ss:[ebp-98],3 |
00402714 | C785 60FFFFFF 020000 | mov dword ptr ss:[ebp-A0],2 |
0040271E | 8975 CC | mov dword ptr ss:[ebp-34],esi |
00402721 | C785 70FFFFFF 080000 | mov dword ptr ss:[ebp-90],8 |
0040272B | FF15 44104000 | call dword ptr ds:[<Ordinal#632>] |
00402731 | 8B55 D8 | mov edx,dword ptr ss:[ebp-28] |
00402734 | 8B1D 10104000 | mov ebx,dword ptr ds:[<__vbaLenBstr>] | ebx:__vbaStrCopy
0040273A | 52 | push edx | edx:L"Hello"
0040273B | FFD3 | call ebx | Name2.Length
0040273D | 8BD0 | mov edx,eax | edx:L"Hello"
0040273F | 8B45 DC | mov eax,dword ptr ss:[ebp-24] |
00402742 | 50 | push eax |
00402743 | 8995 C8FDFFFF | mov dword ptr ss:[ebp-238],edx | name2len
00402749 | FFD3 | call ebx | Name.Length
0040274B | 8B9D C8FDFFFF | mov ebx,dword ptr ss:[ebp-238] | ebx:__vbaStrCopy, [ebp-238]:MinUserRequestViewHitTest+9AD44
00402751 | 8B4D D4 | mov ecx,dword ptr ss:[ebp-2C] | [ebp-2C]: Age
00402754 | 0FAFD8 | imul ebx,eax | name2len*namelen
00402757 | 51 | push ecx |
00402758 | 0F80 CF070000 | jo breaker's crackme # 3_patched.402F2D |
0040275E | FF15 10104000 | call dword ptr ds:[<__vbaLenBstr>] | age.Length
00402764 | 0FAFD8 | imul ebx,eax | 前面len的*结果 再*agelen
00402767 | 0F80 C0070000 | jo breaker's crackme # 3_patched.402F2D |
0040276D | 53 | push ebx | ebx:__vbaStrCopy
0040276E | FF15 08104000 | call dword ptr ds:[<__vbaStrI4>] | 计算结果转成对应十六进制的字符串
00402774 | 8B1D B0104000 | mov ebx,dword ptr ds:[<__vbaStrMove>] | ebx:__vbaStrCopy
0040277A | 8BD0 | mov edx,eax | edx:L"Hello"
0040277C | 8D4D D0 | lea ecx,dword ptr ss:[ebp-30] |
0040277F | FFD3 | call ebx | ebx:__vbaStrCopy
00402781 | 50 | push eax |
00402782 | 68 A41F4000 | push breaker's crackme # 3_patched.401FA4 | -
00402787 | FF15 24104000 | call dword ptr ds:[<__vbaStrCat>] |
0040278D | 8BD0 | mov edx,eax | edx:L"Hello"
0040278F | 8D4D C4 | lea ecx,dword ptr ss:[ebp-3C] |
00402792 | FFD3 | call ebx | ebx:__vbaStrCopy
00402794 | 50 | push eax | 末尾加了-的*结果
00402795 | 8D95 50FFFFFF | lea edx,dword ptr ss:[ebp-B0] | 前面取3位的内容
0040279B | 8D45 C8 | lea eax,dword ptr ss:[ebp-38] |
0040279E | 52 | push edx | edx:L"Hello"
0040279F | 50 | push eax |
004027A0 | FF15 78104000 | call dword ptr ds:[<__vbaStrVarVal>] |
004027A6 | 50 | push eax |
004027A7 | FF15 68104000 | call dword ptr ds:[<Ordinal#713>] | 翻转三位结果
004027AD | 8BD0 | mov edx,eax | edx:L"Hello"
004027AF | 8D4D C0 | lea ecx,dword ptr ss:[ebp-40] |
004027B2 | FFD3 | call ebx | ebx:__vbaStrCopy
004027B4 | 50 | push eax |
004027B5 | FF15 24104000 | call dword ptr ds:[<__vbaStrCat>] | 组合
004027BB | 8985 18FFFFFF | mov dword ptr ss:[ebp-E8],eax |
004027C1 | B9 08000000 | mov ecx,8 |
004027C6 | B8 02000000 | mov eax,2 |
004027CB | 898D 10FFFFFF | mov dword ptr ss:[ebp-F0],ecx |
004027D1 | 8985 38FFFFFF | mov dword ptr ss:[ebp-C8],eax |
004027D7 | 8985 30FFFFFF | mov dword ptr ss:[ebp-D0],eax |
004027DD | 8B45 BC | mov eax,dword ptr ss:[ebp-44] | [ebp-44]: Name2
004027E0 | 898D 40FFFFFF | mov dword ptr ss:[ebp-C0],ecx |
004027E6 | 8D8D 30FFFFFF | lea ecx,dword ptr ss:[ebp-D0] |
004027EC | 8985 48FFFFFF | mov dword ptr ss:[ebp-B8],eax |
004027F2 | 51 | push ecx |
004027F3 | 8D95 40FFFFFF | lea edx,dword ptr ss:[ebp-C0] |
004027F9 | 6A 03 | push 3 |
004027FB | 8D85 20FFFFFF | lea eax,dword ptr ss:[ebp-E0] |
00402801 | 52 | push edx | edx:L"Hello"
00402802 | 50 | push eax |
00402803 | 8975 BC | mov dword ptr ss:[ebp-44],esi |
00402806 | FF15 44104000 | call dword ptr ds:[<Ordinal#632>] | Name2 index3 取两位
0040280C | 8B0F | mov ecx,dword ptr ds:[edi] | edi:"\\J@"
0040280E | 57 | push edi | edi:"\\J@"
0040280F | FF91 FC020000 | call dword ptr ds:[ecx+2FC] |
00402815 | 8D55 90 | lea edx,dword ptr ss:[ebp-70] |
00402818 | 50 | push eax |
00402819 | 52 | push edx | edx:L"Hello"
0040281A | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402820 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
00402822 | 8D4D B8 | lea ecx,dword ptr ss:[ebp-48] | [ebp-48]: Name
00402825 | 51 | push ecx |
00402826 | 53 | push ebx | ebx:__vbaStrCopy
00402827 | 8B03 | mov eax,dword ptr ds:[ebx] | ebx:__vbaStrCopy
00402829 | FF90 A0000000 | call dword ptr ds:[eax+A0] |
0040282F | 3BC6 | cmp eax,esi |
00402831 | DBE2 | fnclex |
00402833 | 7D 12 | jge breaker's crackme # 3_patched.402847 |
00402835 | 68 A0000000 | push A0 |
0040283A | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
0040283F | 53 | push ebx | ebx:__vbaStrCopy
00402840 | 50 | push eax |
00402841 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
00402847 | 8B17 | mov edx,dword ptr ds:[edi] | edx:L"Hello", edi:"\\J@"
00402849 | 57 | push edi | edi:"\\J@"
0040284A | FF92 00030000 | call dword ptr ds:[edx+300] |
00402850 | 50 | push eax |
00402851 | 8D45 8C | lea eax,dword ptr ss:[ebp-74] |
00402854 | 50 | push eax |
00402855 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
0040285B | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
0040285D | 8D55 B4 | lea edx,dword ptr ss:[ebp-4C] | [ebp-4C]: Name2
00402860 | 52 | push edx | edx:L"Hello"
00402861 | 53 | push ebx | ebx:__vbaStrCopy
00402862 | 8B0B | mov ecx,dword ptr ds:[ebx] | ebx:__vbaStrCopy
00402864 | FF91 A0000000 | call dword ptr ds:[ecx+A0] |
0040286A | 3BC6 | cmp eax,esi |
0040286C | DBE2 | fnclex |
0040286E | 7D 12 | jge breaker's crackme # 3_patched.402882 |
00402870 | 68 A0000000 | push A0 |
00402875 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
0040287A | 53 | push ebx | ebx:__vbaStrCopy
0040287B | 50 | push eax |
0040287C | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
00402882 | 8B07 | mov eax,dword ptr ds:[edi] | edi:"\\J@"
00402884 | 57 | push edi | edi:"\\J@"
00402885 | FF90 04030000 | call dword ptr ds:[eax+304] |
0040288B | 8D4D 88 | lea ecx,dword ptr ss:[ebp-78] |
0040288E | 50 | push eax |
0040288F | 51 | push ecx |
00402890 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402896 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
00402898 | 8D45 B0 | lea eax,dword ptr ss:[ebp-50] | [ebp-50]: Age
0040289B | 50 | push eax |
0040289C | 53 | push ebx | ebx:__vbaStrCopy
0040289D | 8B13 | mov edx,dword ptr ds:[ebx] | edx:L"Hello", ebx:__vbaStrCopy
0040289F | FF92 A0000000 | call dword ptr ds:[edx+A0] |
004028A5 | 3BC6 | cmp eax,esi |
004028A7 | DBE2 | fnclex |
004028A9 | 7D 12 | jge breaker's crackme # 3_patched.4028BD |
004028AB | 68 A0000000 | push A0 |
004028B0 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
004028B5 | 53 | push ebx | ebx:__vbaStrCopy
004028B6 | 50 | push eax |
004028B7 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
004028BD | 8B4D B4 | mov ecx,dword ptr ss:[ebp-4C] | [ebp-4C]: Name2
004028C0 | 8B1D 10104000 | mov ebx,dword ptr ds:[<__vbaLenBstr>] | ebx:__vbaStrCopy
004028C6 | 51 | push ecx |
004028C7 | FFD3 | call ebx | Name2.Length
004028C9 | 8BD0 | mov edx,eax | edx:L"Hello"
004028CB | 8B45 B8 | mov eax,dword ptr ss:[ebp-48] |
004028CE | 50 | push eax |
004028CF | 8995 C4FDFFFF | mov dword ptr ss:[ebp-23C],edx |
004028D5 | FFD3 | call ebx | Name.Length
004028D7 | 8B9D C4FDFFFF | mov ebx,dword ptr ss:[ebp-23C] | ebx:__vbaStrCopy
004028DD | 8B4D B0 | mov ecx,dword ptr ss:[ebp-50] | [ebp-50]: Age
004028E0 | 03D8 | add ebx,eax | len name+ len name2
004028E2 | 51 | push ecx |
004028E3 | 0F80 44060000 | jo breaker's crackme # 3_patched.402F2D |
004028E9 | FF15 10104000 | call dword ptr ds:[<__vbaLenBstr>] |
004028EF | 03D8 | add ebx,eax | 前面基础上+age len
004028F1 | 8B45 AC | mov eax,dword ptr ss:[ebp-54] |
004028F4 | B9 08000000 | mov ecx,8 |
004028F9 | 8D95 C0FEFFFF | lea edx,dword ptr ss:[ebp-140] |
004028FF | 8985 D8FEFFFF | mov dword ptr ss:[ebp-128],eax |
00402905 | 898D 50FEFFFF | mov dword ptr ss:[ebp-1B0],ecx |
0040290B | 898D D0FEFFFF | mov dword ptr ss:[ebp-130],ecx |
00402911 | 52 | push edx | edx:L"Hello"
00402912 | 8D85 D0FEFFFF | lea eax,dword ptr ss:[ebp-130] |
00402918 | 6A 02 | push 2 |
0040291A | 8D8D B0FEFFFF | lea ecx,dword ptr ss:[ebp-150] |
00402920 | 50 | push eax |
00402921 | 0F80 06060000 | jo breaker's crackme # 3_patched.402F2D |
00402927 | 51 | push ecx |
00402928 | 899D 68FEFFFF | mov dword ptr ss:[ebp-198],ebx | ebx:__vbaStrCopy
0040292E | C785 60FEFFFF 030000 | mov dword ptr ss:[ebp-1A0],3 |
00402938 | C785 58FEFFFF A41F40 | mov dword ptr ss:[ebp-1A8],breaker's crack |
00402942 | C785 C8FEFFFF 010000 | mov dword ptr ss:[ebp-138],1 |
0040294C | C785 C0FEFFFF 020000 | mov dword ptr ss:[ebp-140],2 |
00402956 | 8975 AC | mov dword ptr ss:[ebp-54],esi |
00402959 | FF15 44104000 | call dword ptr ds:[<Ordinal#632>] | age 从第二位开始取1位
0040295F | 8B17 | mov edx,dword ptr ds:[edi] | edx:L"Hello", edi:"\\J@"
00402961 | 57 | push edi | edi:"\\J@"
00402962 | FF92 FC020000 | call dword ptr ds:[edx+2FC] |
00402968 | 50 | push eax |
00402969 | 8D45 80 | lea eax,dword ptr ss:[ebp-80] |
0040296C | 50 | push eax |
0040296D | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402973 | 8BD8 | mov ebx,eax | ebx:__vbaStrCopy
00402975 | 8D55 A8 | lea edx,dword ptr ss:[ebp-58] | [ebp-58]: Name
00402978 | 52 | push edx | edx:L"Hello"
00402979 | 53 | push ebx | ebx:__vbaStrCopy
0040297A | 8B0B | mov ecx,dword ptr ds:[ebx] | ebx:__vbaStrCopy
0040297C | FF91 A0000000 | call dword ptr ds:[ecx+A0] |
00402982 | 3BC6 | cmp eax,esi |
00402984 | DBE2 | fnclex |
00402986 | 7D 12 | jge breaker's crackme # 3_patched.40299A |
00402988 | 68 A0000000 | push A0 |
0040298D | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
00402992 | 53 | push ebx | ebx:__vbaStrCopy
00402993 | 50 | push eax |
00402994 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
0040299A | 8B45 A8 | mov eax,dword ptr ss:[ebp-58] |
0040299D | 50 | push eax |
0040299E | FF15 10104000 | call dword ptr ds:[<__vbaLenBstr>] | len name
004029A4 | 8B1D 7C104000 | mov ebx,dword ptr ds:[<__vbaVarCat>] | ebx:__vbaStrCopy
004029AA | 8D8D 10FFFFFF | lea ecx,dword ptr ss:[ebp-F0] |
004029B0 | 8985 38FEFFFF | mov dword ptr ss:[ebp-1C8],eax |
004029B6 | 8D95 20FFFFFF | lea edx,dword ptr ss:[ebp-E0] |
004029BC | 51 | push ecx |
004029BD | 8D85 00FFFFFF | lea eax,dword ptr ss:[ebp-100] |
004029C3 | 52 | push edx | edx:L"Hello"
004029C4 | 50 | push eax |
004029C5 | C785 30FEFFFF 030000 | mov dword ptr ss:[ebp-1D0],3 |
004029CF | FFD3 | call ebx | 拼接: **-***+ name2后两位
004029D1 | 8D8D 60FEFFFF | lea ecx,dword ptr ss:[ebp-1A0] |
004029D7 | 50 | push eax |
004029D8 | 8D95 F0FEFFFF | lea edx,dword ptr ss:[ebp-110] |
004029DE | 51 | push ecx |
004029DF | 52 | push edx | edx:L"Hello"
004029E0 | FFD3 | call ebx | 拼接: 前面的结果+ 三个字符串长度求和
004029E2 | 50 | push eax |
004029E3 | 8D85 50FEFFFF | lea eax,dword ptr ss:[ebp-1B0] | -
004029E9 | 8D8D E0FEFFFF | lea ecx,dword ptr ss:[ebp-120] |
004029EF | 50 | push eax |
004029F0 | 51 | push ecx |
004029F1 | FFD3 | call ebx | 再拼个-
004029F3 | 50 | push eax |
004029F4 | 8D95 B0FEFFFF | lea edx,dword ptr ss:[ebp-150] |
004029FA | 8D85 A0FEFFFF | lea eax,dword ptr ss:[ebp-160] |
00402A00 | 52 | push edx | edx:L"Hello"
00402A01 | 50 | push eax |
00402A02 | FFD3 | call ebx | 再拼个Age第二位
00402A04 | 8D8D 30FEFFFF | lea ecx,dword ptr ss:[ebp-1D0] |
00402A0A | 50 | push eax |
00402A0B | 8D95 90FEFFFF | lea edx,dword ptr ss:[ebp-170] |
00402A11 | 51 | push ecx |
00402A12 | 52 | push edx | edx:L"Hello"
00402A13 | FFD3 | call ebx | 再拼个?
00402A15 | 50 | push eax |
00402A16 | FF15 0C104000 | call dword ptr ds:[<__vbaStrVarMove>] |
00402A1C | 8BD0 | mov edx,eax | edx:L"Hello"
00402A1E | 8D4D E0 | lea ecx,dword ptr ss:[ebp-20] |
00402A21 | FF15 B0104000 | call dword ptr ds:[<__vbaStrMove>] |
00402A27 | 8D45 A8 | lea eax,dword ptr ss:[ebp-58] | 清理工作
00402A2A | 8D4D B0 | lea ecx,dword ptr ss:[ebp-50] |
00402A2D | 50 | push eax |
00402A2E | 8D55 B4 | lea edx,dword ptr ss:[ebp-4C] |
00402A31 | 51 | push ecx |
00402A32 | 8D45 B8 | lea eax,dword ptr ss:[ebp-48] |
00402A35 | 52 | push edx | edx:L"Hello"
00402A36 | 8D4D C0 | lea ecx,dword ptr ss:[ebp-40] |
00402A39 | 50 | push eax |
00402A3A | 8D55 C4 | lea edx,dword ptr ss:[ebp-3C] |
00402A3D | 51 | push ecx |
00402A3E | 8D45 C8 | lea eax,dword ptr ss:[ebp-38] |
00402A41 | 52 | push edx | edx:L"Hello"
00402A42 | 8D4D D0 | lea ecx,dword ptr ss:[ebp-30] |
00402A45 | 50 | push eax |
00402A46 | 8D55 D4 | lea edx,dword ptr ss:[ebp-2C] |
00402A49 | 51 | push ecx |
00402A4A | 8D45 D8 | lea eax,dword ptr ss:[ebp-28] |
00402A4D | 52 | push edx | edx:L"Hello"
00402A4E | 8D4D DC | lea ecx,dword ptr ss:[ebp-24] |
00402A51 | 50 | push eax |
00402A52 | 51 | push ecx |
00402A53 | 6A 0B | push B |
00402A55 | FF15 98104000 | call dword ptr ds:[<__vbaFreeStrList>] |
00402A5B | 8D55 80 | lea edx,dword ptr ss:[ebp-80] |
00402A5E | 8D45 84 | lea eax,dword ptr ss:[ebp-7C] |
00402A61 | 52 | push edx | edx:L"Hello"
00402A62 | 8D4D 88 | lea ecx,dword ptr ss:[ebp-78] |
00402A65 | 50 | push eax |
00402A66 | 8D55 8C | lea edx,dword ptr ss:[ebp-74] |
00402A69 | 51 | push ecx |
00402A6A | 8D45 90 | lea eax,dword ptr ss:[ebp-70] |
00402A6D | 52 | push edx | edx:L"Hello"
00402A6E | 8D4D 94 | lea ecx,dword ptr ss:[ebp-6C] |
00402A71 | 50 | push eax |
00402A72 | 8D55 98 | lea edx,dword ptr ss:[ebp-68] |
00402A75 | 51 | push ecx |
00402A76 | 52 | push edx | edx:L"Hello"
00402A77 | 8D45 9C | lea eax,dword ptr ss:[ebp-64] |
00402A7A | 8D4D A0 | lea ecx,dword ptr ss:[ebp-60] |
00402A7D | 50 | push eax |
00402A7E | 8D55 A4 | lea edx,dword ptr ss:[ebp-5C] |
00402A81 | 51 | push ecx |
00402A82 | 52 | push edx | edx:L"Hello"
00402A83 | 6A 0A | push A |
00402A85 | FF15 1C104000 | call dword ptr ds:[<__vbaFreeObjList>] |
00402A8B | 83C4 5C | add esp,5C |
00402A8E | 8D85 90FEFFFF | lea eax,dword ptr ss:[ebp-170] |
00402A94 | 8D8D A0FEFFFF | lea ecx,dword ptr ss:[ebp-160] |
00402A9A | 8D95 B0FEFFFF | lea edx,dword ptr ss:[ebp-150] |
00402AA0 | 50 | push eax |
00402AA1 | 51 | push ecx |
00402AA2 | 8D85 E0FEFFFF | lea eax,dword ptr ss:[ebp-120] |
00402AA8 | 52 | push edx | edx:L"Hello"
00402AA9 | 8D8D C0FEFFFF | lea ecx,dword ptr ss:[ebp-140] |
00402AAF | 50 | push eax |
00402AB0 | 8D95 D0FEFFFF | lea edx,dword ptr ss:[ebp-130] |
00402AB6 | 51 | push ecx |
00402AB7 | 8D85 F0FEFFFF | lea eax,dword ptr ss:[ebp-110] |
00402ABD | 52 | push edx | edx:L"Hello"
00402ABE | 8D8D 00FFFFFF | lea ecx,dword ptr ss:[ebp-100] |
00402AC4 | 50 | push eax |
00402AC5 | 8D95 20FFFFFF | lea edx,dword ptr ss:[ebp-E0] |
00402ACB | 51 | push ecx |
00402ACC | 8D85 10FFFFFF | lea eax,dword ptr ss:[ebp-F0] |
00402AD2 | 8B1D 14104000 | mov ebx,dword ptr ds:[<__vbaFreeVarList>] | ebx:__vbaStrCopy
00402AD8 | 52 | push edx | edx:L"Hello"
00402AD9 | 8D8D 30FFFFFF | lea ecx,dword ptr ss:[ebp-D0] |
00402ADF | 50 | push eax |
00402AE0 | 8D95 40FFFFFF | lea edx,dword ptr ss:[ebp-C0] |
00402AE6 | 51 | push ecx |
00402AE7 | 8D85 50FFFFFF | lea eax,dword ptr ss:[ebp-B0] |
00402AED | 52 | push edx | edx:L"Hello"
00402AEE | 8D8D 60FFFFFF | lea ecx,dword ptr ss:[ebp-A0] |
00402AF4 | 50 | push eax |
00402AF5 | 8D95 70FFFFFF | lea edx,dword ptr ss:[ebp-90] |
00402AFB | 51 | push ecx |
00402AFC | 52 | push edx | edx:L"Hello"
00402AFD | 6A 0F | push F |
00402AFF | FFD3 | call ebx | ebx:__vbaStrCopy
00402B01 | 8B07 | mov eax,dword ptr ds:[edi] | edi:"\\J@"
00402B03 | 83C4 40 | add esp,40 |
00402B06 | 57 | push edi | edi:"\\J@"
00402B07 | FF90 08030000 | call dword ptr ds:[eax+308] |
00402B0D | 8D4D A4 | lea ecx,dword ptr ss:[ebp-5C] |
00402B10 | 50 | push eax |
00402B11 | 51 | push ecx |
00402B12 | FF15 30104000 | call dword ptr ds:[<__vbaObjSet>] |
00402B18 | 8BF8 | mov edi,eax | edi:"\\J@"
00402B1A | 8D45 DC | lea eax,dword ptr ss:[ebp-24] | [ebp-24]: Serial
00402B1D | 50 | push eax |
00402B1E | 57 | push edi | edi:"\\J@"
00402B1F | 8B17 | mov edx,dword ptr ds:[edi] | edx:L"Hello", edi:"\\J@"
00402B21 | FF92 A0000000 | call dword ptr ds:[edx+A0] |
00402B27 | 3BC6 | cmp eax,esi |
00402B29 | DBE2 | fnclex |
00402B2B | 7D 12 | jge breaker's crackme # 3_patched.402B3F |
00402B2D | 68 A0000000 | push A0 |
00402B32 | 68 901F4000 | push breaker's crackme # 3_patched.401F90 |
00402B37 | 57 | push edi | edi:"\\J@"
00402B38 | 50 | push eax |
00402B39 | FF15 28104000 | call dword ptr ds:[<__vbaHresultCheckObj>] |
00402B3F | 8B4D DC | mov ecx,dword ptr ss:[ebp-24] |
00402B42 | 8B55 E0 | mov edx,dword ptr ss:[ebp-20] |
00402B45 | 51 | push ecx | serial
00402B46 | 52 | push edx | True Serial
00402B47 | FF15 50104000 | call dword ptr ds:[<__vbaStrCmp>] |
00402B4D | 8BF8 | mov edi,eax | edi:"\\J@"
00402B4F | 8D4D DC | lea ecx,dword ptr ss:[ebp-24] |
00402B52 | F7DF | neg edi | edi:"\\J@"
00402B54 | 1BFF | sbb edi,edi | edi:"\\J@"
00402B56 | 47 | inc edi | edi:"\\J@"
00402B57 | F7DF | neg edi | edi:"\\J@"
00402B59 | FF15 C0104000 | call dword ptr ds:[<__vbaFreeStr>] |
00402B5F | 8D4D A4 | lea ecx,dword ptr ss:[ebp-5C] |
00402B62 | FF15 C4104000 | call dword ptr ds:[<__vbaFreeObj>] |
00402B68 | 66:3BFE | cmp di,si | 最后的判断
00402B6B | 0F84 87000000 | je <breaker's crackme # 3_patched.Fail_Fak |
00402B71 | 8B3D A8104000 | mov edi,dword ptr ds:[<__vbaVarDup>] | Success
```

View File

@ -0,0 +1,135 @@

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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validator", "Validator\Validator.csproj", "{6BE1ED72-6CA9-4442-B529-C867A9D6904C}"
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|Any CPU
{7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x64.Build.0 = Release|Any CPU
{7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x86.ActiveCfg = Release|Any CPU
{7B2D3886-A213-4F99-89F7-D0D7DDAA97D9}.Release|x86.Build.0 = Release|Any CPU
{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|Any CPU
{6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x64.Build.0 = Release|Any CPU
{6BE1ED72-6CA9-4442-B529-C867A9D6904C}.Release|x86.ActiveCfg = Release|Any CPU
{6BE1ED72-6CA9-4442-B529-C867A9D6904C}.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

View File

@ -0,0 +1,240 @@
namespace keygen1
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
button1 = new Button();
label1 = new Label();
textBox1 = new TextBox();
label2 = new Label();
textBox2 = new TextBox();
label3 = new Label();
checkBox1 = new CheckBox();
button2 = new Button();
button3 = new Button();
label4 = new Label();
textBox3 = new TextBox();
button4 = new Button();
label5 = new Label();
textBox4 = new TextBox();
button5 = new Button();
button6 = new Button();
SuspendLayout();
//
// button1
//
button1.Location = new Point(393, 2);
button1.Name = "button1";
button1.Size = new Size(93, 134);
button1.TabIndex = 0;
button1.Text = "Generate";
button1.UseVisualStyleBackColor = true;
button1.Click += Button1_Click;
//
// label1
//
label1.AutoSize = true;
label1.Location = new Point(30, 18);
label1.Name = "label1";
label1.Size = new Size(39, 15);
label1.TabIndex = 1;
label1.Text = "Name";
//
// textBox1
//
textBox1.Location = new Point(75, 14);
textBox1.Name = "textBox1";
textBox1.Size = new Size(262, 23);
textBox1.TabIndex = 2;
//
// label2
//
label2.AutoSize = true;
label2.Location = new Point(8, 51);
label2.Name = "label2";
label2.Size = new Size(61, 15);
label2.TabIndex = 3;
label2.Text = "Nickname";
//
// textBox2
//
textBox2.Location = new Point(75, 47);
textBox2.Name = "textBox2";
textBox2.Size = new Size(262, 23);
textBox2.TabIndex = 4;
//
// label3
//
label3.AutoSize = true;
label3.Location = new Point(300, 156);
label3.Name = "label3";
label3.Size = new Size(74, 15);
label3.TabIndex = 5;
label3.Text = "By Chenx221";
//
// checkBox1
//
checkBox1.AutoSize = true;
checkBox1.Location = new Point(75, 155);
checkBox1.Name = "checkBox1";
checkBox1.Size = new Size(89, 19);
checkBox1.TabIndex = 6;
checkBox1.Text = "Auto Mode ";
checkBox1.UseVisualStyleBackColor = true;
//
// button2
//
button2.Location = new Point(343, 13);
button2.Name = "button2";
button2.Size = new Size(44, 24);
button2.TabIndex = 7;
button2.Text = "Copy";
button2.UseVisualStyleBackColor = true;
button2.Click += Button2_Click;
//
// button3
//
button3.Location = new Point(343, 47);
button3.Name = "button3";
button3.Size = new Size(44, 23);
button3.TabIndex = 8;
button3.Text = "Copy";
button3.UseVisualStyleBackColor = true;
button3.Click += Button3_Click;
//
// label4
//
label4.AutoSize = true;
label4.Location = new Point(41, 83);
label4.Name = "label4";
label4.Size = new Size(28, 15);
label4.TabIndex = 9;
label4.Text = "Age";
//
// textBox3
//
textBox3.Location = new Point(75, 79);
textBox3.Name = "textBox3";
textBox3.Size = new Size(262, 23);
textBox3.TabIndex = 10;
//
// button4
//
button4.Location = new Point(343, 79);
button4.Name = "button4";
button4.Size = new Size(44, 23);
button4.TabIndex = 11;
button4.Text = "Copy";
button4.UseVisualStyleBackColor = true;
button4.Click += Button4_Click;
//
// label5
//
label5.AutoSize = true;
label5.Location = new Point(34, 116);
label5.Name = "label5";
label5.Size = new Size(35, 15);
label5.TabIndex = 12;
label5.Text = "Serial";
//
// textBox4
//
textBox4.Location = new Point(75, 113);
textBox4.Name = "textBox4";
textBox4.Size = new Size(262, 23);
textBox4.TabIndex = 13;
//
// button5
//
button5.Location = new Point(343, 113);
button5.Name = "button5";
button5.Size = new Size(44, 23);
button5.TabIndex = 14;
button5.Text = "Copy";
button5.UseVisualStyleBackColor = true;
button5.Click += Button5_Click;
//
// button6
//
button6.Location = new Point(380, 142);
button6.Name = "button6";
button6.Size = new Size(106, 32);
button6.TabIndex = 15;
button6.Text = "Restart as Admin";
button6.UseVisualStyleBackColor = true;
button6.Click += Button6_Click;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(491, 183);
Controls.Add(button6);
Controls.Add(button5);
Controls.Add(textBox4);
Controls.Add(label5);
Controls.Add(button4);
Controls.Add(textBox3);
Controls.Add(label4);
Controls.Add(button3);
Controls.Add(button2);
Controls.Add(checkBox1);
Controls.Add(label3);
Controls.Add(textBox2);
Controls.Add(label2);
Controls.Add(textBox1);
Controls.Add(label1);
Controls.Add(button1);
FormBorderStyle = FormBorderStyle.FixedSingle;
MaximizeBox = false;
Name = "Form1";
Text = "KeyGen For Breaker__s_Crackme_#_3";
ResumeLayout(false);
PerformLayout();
}
#endregion
private Button button1;
private Label label1;
private TextBox textBox1;
private Label label2;
private TextBox textBox2;
private Label label3;
private CheckBox checkBox1;
private Button button2;
private Button button3;
private Label label4;
private TextBox textBox3;
private Button button4;
private Label label5;
private TextBox textBox4;
private Button button5;
private Button button6;
}
}

View File

@ -0,0 +1,277 @@
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Xml.Linq;
namespace keygen1
{
public partial class Form1 : Form
{
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
static extern IntPtr FindWindow(string? lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
[DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, StringBuilder? lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)]
private static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("user32.dll", SetLastError = true)]
private static extern bool IsWindowVisible(IntPtr hWnd);
private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
const uint WM_SETTEXT = 0x000C;
const uint BM_CLICK = 0x00F5;
public Form1()
{
InitializeComponent();
UpdateWindowTitle();
}
private void UpdateWindowTitle()
{
Text += IsRunningAsAdministrator() ? " (Admin)" : " (Non-Admin)";
button6.Enabled = !IsRunningAsAdministrator();
}
private static bool IsRunningAsAdministrator()
{
try
{
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
catch
{
return false;
}
}
private void Button1_Click(object sender, EventArgs e)
{
//if (string.IsNullOrEmpty(textBox1.Text))
//{
// MessageBox.Show("Name不能为空");
// return;
//}
//if (string.IsNullOrEmpty(textBox2.Text))
//{
// MessageBox.Show("First Name不能为空");
// return;
//}
//if (string.IsNullOrEmpty(textBox3.Text))
//{
// MessageBox.Show("Company不能为空");
// return;
//}
//Generate(textBox1.Text, textBox2.Text, textBox3.Text);
Generate(textBox1.Text, textBox2.Text, textBox3.Text);
}
private void Generate(string name, string nickname, string age)
{
//if (name.Length < 4)
//{
// MessageBox.Show("Name长度需大于等于4");
// return;
//}
//if (username == "Ab")
//{
// MessageBox.Show("Name不能为Ab");
// return;
//}
//if(Regex.IsMatch(username, @"\d"))
//{
// MessageBox.Show("Name不允许包含数字");
// return;
//}
//if (username[0]==' ')
//{
// MessageBox.Show("Name开头不能包含空格");
// return;
//}
string? serial = GenerateKey(name, nickname, age);
if (string.IsNullOrEmpty(serial))
{
MessageBox.Show("生成Key失败");
return;
}
//if (!int.TryParse(username, out int serial1))
//{
// MessageBox.Show("Serial1不是有效数字");
// return;
//}
//string key = GenerateKey(serial1);
//textBox4.Text = string.Join("-", key);
textBox4.Text = serial;
if (checkBox1.Checked) AutoMode(name, nickname, age, serial);
}
private static string? GenerateKey(string name, string nickname, string age)
{
int nameLength = name.Length;
int nicknameLength = nickname.Length;
int ageLength = age.Length;
string p1 = (nicknameLength * nameLength * ageLength).ToString();
string p2 = Reverse(Mid(name, 1, 3));
string p3 = Mid(nickname, 2, 2);
int p4 = nameLength + nicknameLength + ageLength;
string p5 = Mid(age, 1, 1);
int p6 = nameLength;
return $"{p1}-{p2}{p3}{p4}-{p5}{p6}";
}
public static string Mid(string str, int start, int length)
{
if (start < 0 || start >= str.Length)
return string.Empty;
int actualLength = Math.Min(length, str.Length - start);
return str.Substring(start, actualLength);
}
static string Reverse(string str)
{
char[] charArray = str.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}
private static void AutoMode(string name, string nickname, string age, string serial)
{
string windowTitle = "Breaker's Crackme # 3";
List<IntPtr> windowHandles = FindAllWindowsWithTitle(windowTitle);
if (windowHandles.Count == 0)
{
MessageBox.Show("窗口未找到");
return;
}
IntPtr hWnd = windowHandles[0];
//int frameControlId = 0x3;
int nameControlId = 0x5;
int nicknameControlId = 0x4;
int ageControlId = 0x3;
int serialControlId = 0x2;
int submitButtonId = 0x1;
//IntPtr frameHwnd = GetDlgItem(hWnd, frameControlId);
//IntPtr usernameHwnd = GetDlgItem(frameHwnd, usernameControlId);
//IntPtr submitButtonHwnd = GetDlgItem(frameHwnd, submitButtonId);
IntPtr nameHwnd = GetDlgItem(hWnd, nameControlId);
IntPtr nicknameHwnd = GetDlgItem(hWnd, nicknameControlId);
IntPtr ageHwnd = GetDlgItem(hWnd, ageControlId);
IntPtr serialHwnd = GetDlgItem(hWnd, serialControlId);
IntPtr submitButtonHwnd = GetDlgItem(hWnd, submitButtonId);
if (nameHwnd == IntPtr.Zero || nicknameHwnd == IntPtr.Zero || ageHwnd == IntPtr.Zero || serialHwnd == IntPtr.Zero || submitButtonHwnd == IntPtr.Zero)
{
MessageBox.Show("控件未找到");
return;
}
//if (usernameHwnd == IntPtr.Zero || frameHwnd == IntPtr.Zero || serialHwnd == IntPtr.Zero || submitButtonHwnd == IntPtr.Zero)
//{
// MessageBox.Show("控件未找到");
// return;
//}
StringBuilder nameToSet = new(name);
StringBuilder nicknameToSet = new(nickname);
StringBuilder ageToSet = new(age);
StringBuilder serialToSet = new(serial);
SendMessage(nameHwnd, WM_SETTEXT, IntPtr.Zero, nameToSet);
SendMessage(nicknameHwnd, WM_SETTEXT, IntPtr.Zero, nicknameToSet);
SendMessage(ageHwnd, WM_SETTEXT, IntPtr.Zero, ageToSet);
SendMessage(serialHwnd, WM_SETTEXT, IntPtr.Zero, serialToSet);
SendMessage(submitButtonHwnd, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
}
static List<IntPtr> FindAllWindowsWithTitle(string title)
{
List<IntPtr> handles = [];
EnumWindows((hWnd, lParam) =>
{
if (IsWindowVisible(hWnd))
{
StringBuilder buffer = new(256);
if (GetWindowText(hWnd, buffer, buffer.Capacity) > 0)
{
if (buffer.ToString().Equals(title, StringComparison.OrdinalIgnoreCase))
{
handles.Add(hWnd);
}
}
}
return true; // 继续枚举窗口
}, IntPtr.Zero);
return handles;
}
private void Button2_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
Clipboard.SetText(textBox1.Text);
}
}
private void Button3_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox2.Text))
{
Clipboard.SetText(textBox2.Text);
}
}
private void Button4_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox3.Text))
{
Clipboard.SetText(textBox3.Text);
}
}
private void Button5_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox4.Text))
{
Clipboard.SetText(textBox4.Text);
}
}
private void Button6_Click(object sender, EventArgs e)
{
try
{
string exePath = Application.ExecutablePath;
var processInfo = new ProcessStartInfo
{
FileName = exePath,
UseShellExecute = true,
Verb = "runas",
Arguments = ""
};
Process.Start(processInfo);
Application.Exit();
}
catch (System.ComponentModel.Win32Exception)
{
MessageBox.Show("权限提升请求被拒绝。");
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
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">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</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.Runtime.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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<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" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</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>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,17 @@
namespace keygen1
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
}

View File

@ -0,0 +1,39 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Platforms>AnyCPU;x86;x64</Platforms>
<Authors>chenx221</Authors>
<Company>chenx221</Company>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DebugType>portable</DebugType>
</PropertyGroup>
</Project>