삽질의 현장/- 윈도우 커널

윈도우커널_#006_삽질의 시작! NtQuerySystemInformaton 정복기

shovelman 2015. 6. 9. 23:22

 

 

[이전 이야기]

001. 커널은 뭐다? 서버다! : http://sapzape.tistory.com/4

002. 커널은 서버라고? 직접 보여줘! : http://sapzape.tistory.com/6

003. 커널은 서버라고? 더욱 생생하게 보여줘봐! : http://sapzape.tistory.com/7

004. Handle 서비스하는거 보러갈사람! : http://sapzape.tistory.com/9

005. Handle 서비스하는거 보러갈사람! : http://sapzape.tistory.com/10

 

 



안녕하십니까?

강인한 사나이강렬한 사나이 삽잡이입니다.

 

오늘부터는 Window System을 하나하나 뜯어먹으며

각 Stage 마다의 끝판왕들을 삽으로 때려 눕혀 우리 모두의 것으로 만들고자 합니다.

끝판왕을 잡기위한 패기 넘치는 삽잡이의 저 모습 보이십니까?

다 씹어먹고 허접에서 등업하고야 말것이야~~~ (미친삽으로 변신...)

 

오늘부터 조만간(?) 씹어먹고 흡수할 첫번째 Stage 끝판왕

바로 NtQuerySystemInformaton를 소개하겠습니다...

자... 보시죠...

 

 


아래 캡쳐한 이미지는

Process Hacker에 정의되어있는 NtQuerySystemInformaton의 내용입니다...

우린 아직 씹어먹지 못했습니다...

저 고지를 넘는다면 우리는 Process Hacker의 참맛과 (전부는 아닙니다;;)

Handle을 씹어먹을 수 있습니다!

 

 

 

MSDN에서 가져온 NtQuerySystemInformaton의 내용입니다...

그렇다면~ 자...

MSDN에게 NtQuerySystemInformaton란?

 

뭐라는거야...

 

 

















 

 

하지만... MSDN은 금방 정신을 차리고, 영어로 삽잡이를 뭉갭니다...

그렇습니다... 어쩔수 없습니다... 

자... 충격에서 헤어나오세요... 우리는 영어와 뗄레야 뗄 수 없습니다.

(자기 최면중입니다... 영어밖에 없어... 영어야 너만 바라봐... 뭐라는거야...)

얼렁 봅시다!

 

우선, 반환형이 NTSTATUS입니다... 뭡니까 이건...

반환형이면 int, double, float 이런거 아닌가... 쫄지맙시다.

 

단지 커널 모드의 반환값밖에 되지 않습니다! (ㅎㄷㄷ...)

쫄지마시구 계속 보면~

4개의 인자가 있네요~

 

 

 

하나하나 살펴봅시다...

 


 

SYSTEM_INFORMATIION_CLASS 안에 열거된 값중 하나... 시스템 정보... 

(값들은 뺐습니다... 허허...)

아하! 검색하고자하는 시스템 정보의 종류인가보네요...

흠... 어떤 정보를 보여줄지를 나타내는 인자같습니다.  

 


 

그 다음으로는...

버퍼네요 버퍼... 첫번째 인자로부터 해당 정보를 받을 버퍼.. 

 

 

세번째 인자는 두번째 인자(버퍼)의 크기고요...

네번째 인자는 여러분에게 맞기겠습니다.... (푸하하... 해석 못해서가 never 아닙니다!!)

에휴... 실제 정보의 크기를 나타내는거 같습니다...

 

적을 알면 백전 백승! 근데 난 아직 모르냐벼... 번번히 털려... 푸하하...

사실 아직 접근조차 못했습니다!

열심히 수련하여 조만간 삽으로 물리치고 득템하는 미친삽 삽잡이의 모습을 보여드리죠

후후...

 

 

오늘은 여기까지 하겠습니다!

저는 끝판왕을 뜯어먹기위해 수련하러가겠습니다.

 

날씨 추운데 여러분 지방만한 두꺼운 옷들 입구

건강 챙기세요! (죄송합니다...)

 

이상 미친삽, 삽잡이였습니다!

 

 


[참고자료]

 

http://msdn.microsoft.com/en-us/library/cc704588.aspx 

<-- NTSTATUS

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724509(v=vs.85).aspx 

<-- NtQuerySystemInformation

http://arisri.tistory.com/entry/SYSTEMINFORMATIONCLASS-Enumeration 

<-- SystemInformationClass 인자의 구성값에 대해 잘 나와있다.

 

 

[구글 키워드]

 

NtQuerySystemInformation

NTSTATUS

MSDN


http://sapzape.tistory.com/11