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定...