MCPcopy Create free account
hub / github.com/ReversecLabs/C3 / InitVersion

Function InitVersion

Src/CebuLoader/WindowsVersion.cpp:12–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10 static bool versionInitialized = false;
11
12 void InitVersion()
13 {
14 if (versionInitialized)
15 return;
16
17 g_WinVer.native.dwOSVersionInfoSize = sizeof(g_WinVer.native);
18
19 using fnRtlGetVersion = NTSTATUS(NTAPI*)(PRTL_OSVERSIONINFOEXW lpVersionInformation);
20 auto RtlGetVersion = (fnRtlGetVersion)GetProcAddress(GetModuleHandleW(L"ntdll.dll"), "RtlGetVersion");
21 if (RtlGetVersion)
22 {
23 RtlGetVersion(&g_WinVer.native);
24 }
25
26 if (g_WinVer.native.dwMajorVersion != 0)
27 {
28 auto fullver = (g_WinVer.native.dwMajorVersion << 8) | g_WinVer.native.dwMinorVersion;
29 switch (fullver)
30 {
31 case Win32WinNtWIN10:
32 if (g_WinVer.native.dwBuildNumber >= Build_W11_21H2)
33 g_WinVer.ver = Win11_21H2;
34 else if (g_WinVer.native.dwBuildNumber >= Build_21H1)
35 g_WinVer.ver = Win10_21H1;
36 else if (g_WinVer.native.dwBuildNumber >= Build_20H2)
37 g_WinVer.ver = Win10_20H2;
38 else if (g_WinVer.native.dwBuildNumber >= Build_20H1)
39 g_WinVer.ver = Win10_20H1;
40 else if (g_WinVer.native.dwBuildNumber >= Build_19H2)
41 g_WinVer.ver = Win10_19H2;
42 else if (g_WinVer.native.dwBuildNumber >= Build_19H1)
43 g_WinVer.ver = Win10_19H1;
44 else if (g_WinVer.native.dwBuildNumber >= Build_RS5)
45 g_WinVer.ver = Win10_RS5;
46 else if (g_WinVer.native.dwBuildNumber >= Build_RS4)
47 g_WinVer.ver = Win10_RS4;
48 else if (g_WinVer.native.dwBuildNumber >= Build_RS3)
49 g_WinVer.ver = Win10_RS3;
50 else if (g_WinVer.native.dwBuildNumber >= Build_RS2)
51 g_WinVer.ver = Win10_RS2;
52 else if (g_WinVer.native.dwBuildNumber >= Build_RS1)
53 g_WinVer.ver = Win10_RS1;
54 else if (g_WinVer.native.dwBuildNumber >= Build_RS0)
55 g_WinVer.ver = Win10;
56 break;
57
58 case Win32WinNtWINBLUE:
59 g_WinVer.ver = Win8Point1;
60 break;
61
62 case Win32WinNtWIN8:
63 g_WinVer.ver = Win8;
64 break;
65
66 case Win32WinNtWIN7:
67 g_WinVer.ver = Win7;
68 break;
69

Callers 1

WindowsVersion.cppFile · 0.85

Calls 1

GetRevisionFunction · 0.70

Tested by

no test coverage detected