獲取Windows系統版本資訊

2021-07-06 06:37:40 字數 1365 閱讀 4274

1. 獲取windows版本:-- peb結構

在peb結構中存放著作業系統版本資訊的函式,

ulong osmajorversion; // a4h 偏移位址a4h顯示作業系統主版本號

ulong osminorversion; // a8h 偏移位址a8h顯示作業系統子版本號

通過讀取osmajorversion和osminorversion的資料能夠確定作業系統的版本。

fs段暫存器指向當前的teb結構,在teb偏移0x30處是peb指標,通過這個指標可以取得存放在peb中的資訊。

不同的作業系統,版本資訊的存放的位置是不同的,其中

2000  0x0500   

xp      0x0501

2003  0x0502

vista 0x0600

win7  0x0601

win8  0x0602

根據上述資訊我們可以通過不呼叫api函式來獲取作業系統的版本資訊。

int a=0,b=0,i=0,j=0;

_asm

if((i==5)&&(j==0))

else if((i==5)&&(j==1))

else if((i==5)&&(j==2))

else if((i==6)&&(j==0))

else if((i==6)&&(j==1))

else if((i==6)&&(j==2))

2. 通過windows系統api獲取:

cstring src;

osversioninfo versioninfo;

versioninfo.dwosversioninfosize = sizeof(osversioninfo);

if(!::getversionex(&versioninfo))

src = "microsoft windows ";

switch(versioninfo.dwplatformid)

else if(versioninfo.dwminorversion >= 10 && versioninfo.dwminorversion <= 89 )

else if(versioninfo.dwminorversion == 90 )

break;

case ver_platform_win32_nt:

if(versioninfo.dwmajorversion == 4)

else if(versioninfo.dwmajorversion == 5)

}else if(versioninfo.dwmajorversion == 6)

}break;

default:

break;

}

系統資訊獲取 1,獲取系統版本

getversionex函式原型 cpp view plain copy bool getversionex posversioninfo pversioninformation 結構osversioninfoex定義如下 typedef struct osversioninfoex,posvers...

Cpp獲取Windows系統版本

參考 windows 下c 獲取作業系統版本名稱筆記 感謝原博主的分享 windows通過c 獲取作業系統主要分兩種 1 windows是8.1版本以下版本 獲取作業系統可以通過windows提供的api中getversionex函式來獲取 2 windows是8.1版本及以上 獲取作業系統主要通過...

GetVersionEx 獲取系統版本資訊

最近在windows 8上獲取系統版本資訊需要呼叫系統api,於是用到了getversionex。首先看一看函式原型 cpp view plain copy bool getversionex posversioninfo pversioninformation 結構osversioninfoex定...