ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

VC/MFC ÅжϲÙ×÷ϵͳ
2013-11-20 14:23:06 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:111´Î
Tags£ºVC/MFC  ÅÐ¶Ï ²Ù×÷ϵͳ

¡¡¡¡ÔÚPEB½á¹¹Öдæ·Å×ŲÙ×÷ϵͳ°æ±¾ÐÅÏ¢µÄº¯Êý£¬

¡¡¡¡ULONG OSMajorVersion; // A4h Æ«ÒÆµØÖ·a4hÏÔʾ²Ù×÷ϵͳÖ÷°æ±¾ºÅ

¡¡¡¡ULONG OSMinorVersion; // A8h Æ«ÒÆµØÖ·a8hÏÔʾ²Ù×÷ϵͳ×Ó°æ±¾ºÅ

¡¡¡¡Í¨¹ý¶ÁÈ¡OSMajorVersionºÍOSMinorVersionµÄÊý¾ÝÄܹ»È·¶¨²Ù×÷ϵͳµÄ°æ±¾¡£

¡¡¡¡FS¶Î¼Ä´æÆ÷Ö¸Ïòµ±Ç°µÄTEB½á¹¹£¬ÔÚTEBÆ«ÒÆ0x30´¦ÊÇPEBÖ¸Õ룬ͨ¹ýÕâ¸öÖ¸Õë¿ÉÒÔÈ¡µÃ´æ·ÅÔÚPEBÖеÄÐÅÏ¢¡£

¡¡¡¡²»Í¬µÄ²Ù×÷ϵͳ£¬°æ±¾ÐÅÏ¢µÄ´æ·ÅµÄλÖÃÊDz»Í¬µÄ£¬ÆäÖÐ

¡¡¡¡2000 0X0500

¡¡¡¡XP 0X0501

¡¡¡¡2003 0X0502

¡¡¡¡VISTA 0X0600

¡¡¡¡Win7 0X0601

¡¡¡¡ÕâÑù¸ù¾ÝÕâЩÐÅÏ¢ÎÒÃÇ¿ÉÒÔͨ¹ý²»µ÷ÓÃAPIº¯ÊýÀ´»ñÈ¡²Ù×÷ϵͳµÄ°æ±¾ÐÅÏ¢¡£

¡¡¡¡void XXX::GetSystem£¨£©

¡¡¡¡{

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

¡¡¡¡_asm

¡¡¡¡{

¡¡¡¡pushad

¡¡¡¡mov ebx,fs:[0x18] ; get self pointer from TEB

¡¡¡¡mov eax,fs:[0x30] ; get pointer to PEB / database

¡¡¡¡mov ebx,[eax+0A8h] ; get OSMinorVersion

¡¡¡¡mov eax,[eax+0A4h] ; get OSMajorVersion

¡¡¡¡mov j,ebx

¡¡¡¡mov i,eax

¡¡¡¡popad

¡¡¡¡}

¡¡¡¡if£¨£¨i==5£©&&£¨j==0£©£©

¡¡¡¡{

¡¡¡¡AfxMessageBox£¨_T£¨"ϵͳ°æ±¾Îª Windows 2000"£©£¬MB_OK£©£»

¡¡¡¡}

¡¡¡¡else if£¨£¨i==5£©&&£¨j==1£©£©

¡¡¡¡{

¡¡¡¡AfxMessageBox£¨_T£¨"ϵͳ°æ±¾Îª Windows XP"£©£¬MB_OK£©£»

¡¡¡¡}

¡¡¡¡else if£¨£¨i==5£©&&£¨j==2£©£©

¡¡¡¡{

¡¡¡¡AfxMessageBox£¨_T£¨"ϵͳ°æ±¾Îª Windows 2003"£©£¬MB_OK£©£»

¡¡¡¡}

¡¡¡¡else if£¨£¨i==6£©&&£¨j==0£©£©

¡¡¡¡{

¡¡¡¡AfxMessageBox£¨_T£¨"ϵͳ°æ±¾Îª Windows Vista"£©£¬MB_OK£©£»

¡¡¡¡}

¡¡¡¡else if£¨£¨i==6£©&&£¨j==1£©£©

¡¡¡¡{

¡¡¡¡AfxMessageBox£¨_T£¨"ϵͳ°æ±¾Îª Win7"£©£¬MB_OK£©£»

¡¡¡¡}

¡¡¡¡}

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºVC Á¬½ÓÊý¾Ý¿â·½·¨Ð¡½á ÏÂһƪ£º2.3.3 ±äÁ¿µÄʹÓÃ

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)