solved new crackme
This commit is contained in:
parent
f3e0b5aaf4
commit
ab7bb39fdb
BIN
Breaker__s_Crackme_#_3/Breaker's Crackme # 3.exe
Normal file
BIN
Breaker__s_Crackme_#_3/Breaker's Crackme # 3.exe
Normal file
Binary file not shown.
BIN
Breaker__s_Crackme_#_3/Breaker's Crackme # 3_Patched.exe
Normal file
BIN
Breaker__s_Crackme_#_3/Breaker's Crackme # 3_Patched.exe
Normal file
Binary file not shown.
6
Breaker__s_Crackme_#_3/RULEZ.txt
Normal file
6
Breaker__s_Crackme_#_3/RULEZ.txt
Normal 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
|
23
Breaker__s_Crackme_#_3/keygen/keygen1.deps.json
Normal file
23
Breaker__s_Crackme_#_3/keygen/keygen1.deps.json
Normal 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": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
Breaker__s_Crackme_#_3/keygen/keygen1.dll
Normal file
BIN
Breaker__s_Crackme_#_3/keygen/keygen1.dll
Normal file
Binary file not shown.
BIN
Breaker__s_Crackme_#_3/keygen/keygen1.exe
Normal file
BIN
Breaker__s_Crackme_#_3/keygen/keygen1.exe
Normal file
Binary file not shown.
19
Breaker__s_Crackme_#_3/keygen/keygen1.runtimeconfig.json
Normal file
19
Breaker__s_Crackme_#_3/keygen/keygen1.runtimeconfig.json
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
592
Breaker__s_Crackme_#_3/solve.md
Normal file
592
Breaker__s_Crackme_#_3/solve.md
Normal 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
|
||||||
|
```
|
||||||
|
|
135
Breaker__s_Crackme_#_3/source/keygen1.sln
Normal file
135
Breaker__s_Crackme_#_3/source/keygen1.sln
Normal 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
|
240
Breaker__s_Crackme_#_3/source/keygen1/Form1.Designer.cs
generated
Normal file
240
Breaker__s_Crackme_#_3/source/keygen1/Form1.Designer.cs
generated
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
277
Breaker__s_Crackme_#_3/source/keygen1/Form1.cs
Normal file
277
Breaker__s_Crackme_#_3/source/keygen1/Form1.cs
Normal 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("权限提升请求被拒绝。");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
120
Breaker__s_Crackme_#_3/source/keygen1/Form1.resx
Normal file
120
Breaker__s_Crackme_#_3/source/keygen1/Form1.resx
Normal 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>
|
17
Breaker__s_Crackme_#_3/source/keygen1/Program.cs
Normal file
17
Breaker__s_Crackme_#_3/source/keygen1/Program.cs
Normal 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
Breaker__s_Crackme_#_3/source/keygen1/keygen1.csproj
Normal file
39
Breaker__s_Crackme_#_3/source/keygen1/keygen1.csproj
Normal 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>
|
Loading…
Reference in New Issue
Block a user