Skip to content

Commit 70e2c6f

Browse files
committed
Finished Win32 GUI (First time in my life)
1 parent 602ad90 commit 70e2c6f

File tree

5 files changed

+178
-54
lines changed

5 files changed

+178
-54
lines changed

Keygen.vcxproj

+3-2
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
8989
</Midl>
9090
<Link>
91-
<AdditionalDependencies>lib\libcrypto.lib;comctl32.lib;uxtheme.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
91+
<AdditionalDependencies>lib\libcrypto.lib;comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
9292
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
9393
<AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>
9494
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -99,6 +99,7 @@
9999
<ProgramDataBaseFile>$(OutDir)$(TargetName).pdb</ProgramDataBaseFile>
100100
<SubSystem>Console</SubSystem>
101101
<AdditionalManifestDependencies>"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"</AdditionalManifestDependencies>
102+
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
102103
</Link>
103104
<ProjectReference>
104105
<LinkLibraryDependencies>true</LinkLibraryDependencies>
@@ -133,7 +134,7 @@
133134
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
134135
</Midl>
135136
<Link>
136-
<AdditionalDependencies>lib\libcrypto.lib;comctl32.lib;uxtheme.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
137+
<AdditionalDependencies>lib\libcrypto.lib;comctl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
137138
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
138139
<AdditionalOptions>%(AdditionalOptions) /machine:x64</AdditionalOptions>
139140
<GenerateDebugInformation>false</GenerateDebugInformation>

header.h

+5
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,14 @@
4343
#define IDC_LABEL1 1055
4444
#define IDC_LABEL2 1056
4545
#define IDC_LABEL3 1057
46+
#define IDC_LABEL4 1058
47+
#define IDC_LABEL5 1059
4648

4749
typedef unsigned long ul32;
4850

4951
extern HANDLE hConsole;
52+
53+
extern ul32 dwSeed;
5054
extern byte charset[];
5155

5256
extern const char pXP[];
@@ -128,6 +132,7 @@ void generateServerKey(
128132
// utilities.cpp
129133
void cprintf(const char *Format, int nColor, ...);
130134
void endiannessConvert(byte *data, int length);
135+
ul32 randomRange(ul32 dwLow, ul32 dwHigh);
131136

132137
EC_GROUP *initializeEllipticCurve(
133138
const char *pSel,

main.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "header.h"
77

88
HANDLE hConsole;
9+
ul32 dwSeed;
910
byte charset[] = "BCDFGHJKMPQRTVWXY2346789";
1011

1112
int mainServer() {
@@ -143,12 +144,12 @@ int main() {
143144

144145
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
145146

147+
srand(GetTickCount64());
148+
146149
HINSTANCE hInstance = GetModuleHandleW(nullptr);
147150

148151
int p = InitializeWindow(hInstance);
149152

150-
SetConsoleTitleA("Windows XP VLK Keygen");
151-
152153
system("cls");
153154
cprintf("Windows XP VLK Keygen\n\n", 0x08);
154155

@@ -173,6 +174,4 @@ int main() {
173174
printf("\t2. Hash = (First32Bits(SHA1(pRaw, r.x, r.y)) >> 4.\n");
174175
printf("\t3. Signature = privateKey * Hash + (C %% Order)\n");
175176
printf("Finally, we pack these components together, convert them to Base24 and get a valid Windows XP key.\n");
176-
177-
cprintf("Input Raw Product Key BBB-CCCCCC WITHOUT DASHES in range [100-000000; 999-999999]: ", 0x0E);
178177
}

utilities.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "header.h"
66

7-
/* Colored output */
7+
/* Colored output. */
88
void cprintf(const char *Format, int nColor, ...) {
99
va_list vList;
1010

@@ -26,6 +26,7 @@ void endiannessConvert(byte *data, int length) {
2626
}
2727
}
2828

29+
/* Initializes the elliptic curve. */
2930
EC_GROUP *initializeEllipticCurve(
3031
const char *pSel,
3132
long aSel,
@@ -65,6 +66,8 @@ EC_GROUP *initializeEllipticCurve(
6566
// Context variable
6667
context = BN_CTX_new();
6768

69+
70+
6871
/* Public data */
6972
BN_hex2bn(&p, pSel);
7073
BN_set_word(a, aSel);
@@ -96,4 +99,9 @@ EC_GROUP *initializeEllipticCurve(
9699
BN_CTX_free(context);
97100

98101
return eCurve;
102+
}
103+
104+
/* Generates a random 32-bit integer in range. */
105+
ul32 randomRange(ul32 dwLow, ul32 dwHigh) {
106+
return rand() % (dwHigh - dwLow) + dwLow;
99107
}

0 commit comments

Comments
 (0)