WSSCAN 만들면서 공부한 C++ 이야기이다.
전문 프로그래머가 아니므로 감안해서 봐주면 좋을거 같다.

윈도우에서 윈도우 버전 정보를 획득하기 위해서는 어떻게 해야할까?

윈도우 프로그래머라면 아마도 무지 쉬운 일일 것이다.
하자만 경험이 전무한 나에게 참 애먹이는 작업이였다. 인터넷에 검색해서 고심고심 끝에 원하는 모습으로 만들어 냈다.

[Header]
#include <windows.h>
#include <sstream>
#include <string>
[Source]
string _version()
{
 ostringstream oss;
 DWORD dwVersion = 0;
    DWORD dwMajorVersion = 0;
    DWORD dwMinorVersion = 0;
    DWORD dwBuild = 0;
    dwVersion = GetVersion();
 
    // Get the Windows version.
    dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
    dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
 
 //Version
 // - 4.0 : Windows 95/Windows NT 4.0"
 // - 4.1 : Windows 98
 // - 4.9 : Windows Me
 // - 5.0 : Windows 2000
 // - 5.1 : Windows XP
 // - 5.2 : Windows Server 2003
 // - 6.0 : Windows Vista/Windows Server Longhorn
    // Get the build number.
    if (dwVersion < 0x80000000)             
        dwBuild = (DWORD)(HIWORD(dwVersion));
 oss << dwMajorVersion << "." << dwMinorVersion << "." << dwBuild;
 return oss.str();
};




return 값이 string 형으로 Windows XP를 기준으로 5.1.2600 이란 버전 정보를 출력하고 싶었다.
C++에서 가장 어려운 부분중의 하나가 데이터형 변환인거 같다.

Long 형을 string 형으로 변환 시키기가 쉽지가 않았는뎅 인터넷 검색결과 ostringstream을 이용하는 방법이 가장 보기 좋고 만들기 쉬운 방법인거 같아 사용하게 되었다.

역쉬나 원하는 결과 값을 손쉽게 구할 수 있어 대 만족이다.

Posted by n3015m
:
BLOG main image
'네오이즘'의 보안LAB 블로그입니다........... n3oism@gmail.com by n3015m

카테고리

분류 전체보기 (228)
[ HappyDevTool ] (29)
[ HappyToolRelease ] (4)
[Book] (6)
[ Security Studies ] (0)
- CII (2)
- BigData (2)
- Web Hacking (10)
- SQL Injection (25)
- Mobile Security (9)
- Network (6)
- OperatingSystem (4)
- Malware & Reversing (4)
- Phishing (5)
- Compliance (0)
- Programming (13)
- Tools (13)
- IoT (6)
- etc (21)
[Pentration Testing] (3)
[OS X] (4)
[ Security Trends ] (16)
[ Fixing Guideline ] (7)
My Way, My Life (34)
About Me (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :