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

윈도우커널_#022_Give Me A Call~ 핸들 추출이 필요할 때 불러~

shovelman 2015. 6. 9. 23:32

 

 

안녕하세요... 삽잡이입니다...

오늘은 미친삽이 아니라 센치한 삽입니다...

 

주말에 너무 잠을 자서.... 내일이 감히 월요일이지만...

미친척하고 이러고 놀고 있습니다...

(원래 누우면 그냥 잡니다... 잠이 안와서 안자는게 아니라... 그냥... 눈이 떠있고 싶네요...)

 

자.. 센치하게 코드 분석이나 해봅시다... 마치 문학 시간에 현대 시를 감상하듯이~

 

WinDbg에서 환경 설정을 해두고...

프로세스를 클릭하여 Handle을 알아보고자 했을 때 당신이 나타났습니다...

 


 

당신은 이런 설명이 있더군요...

 

"Gets a pointer to the handle table of a process."

 

고맙습니다... 당신 덕분에 프로세스에서 handle table을 얻을 수 있었습니다.

당신의 return 이라는 한 단어에 나는 바람과 같이 움직입니다.

 


 

아~ 이름 모를 그대여 왜 제 앞에 나타나셨나요... (니가 온거야...;;)

왜... 왜!!! 당신은 프로세스의 핸들을 늘어 뜨리시나!!!

 

(아... 못해먹겠다... 센치하긴 한데 이거 2~3절 이상 넘어가는거 같네요... 죄송합니다...)

 

아무튼... 이놈의 핸들을 뽑아 내주군요...

흠... 저는 디버깅에 따라가는 곳으로 물 흐르듯이 따라가보겠습니다...

 

context 라는 구조체 변수를 초기화 해주고 있습니다... 핸들을 까볼때 필요합니다...

 


 

그리고 드디어 나왔습니다...  OS 버전에 맞게 핸들을 열거해주도록 해놨네요...

앗... 여러분 주목하셔야 될 것이 있습니다...

뭐가 보이네요...

 



바로!! CallBack 함수입니다!


 

핸들값을 추출하는데 CallBack 함수를 사용했습니다...

이제 CallBack 함수를 알아보도록 해야겠네요... 뭘까요 요놈은...

 

WinDbg로 보기 힘들어서... 저는 Visual Studio를 가지고 CallBack 함수를 보도록 하겠습니다.

 

이제 거의 다 왔습니다!

물론 제가 씹어먹으려면... 장담은 못하겠네요 푸하하...

 

그렇다면!

다음시간에 뵙죠! 이상 삽잡이였습니다!

 

 

[구글 키워드]

 

CallBack

ProcessHacker

WinDbg

 

 

 http://sapzape.tistory.com/39