[이전 이야기]
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
006. 삽질의 시작! NtQuerySystmInformation 정복기 : http://sapzape.tistory.com/11
007. 삽질은 끝나지 않는다! NtDuplicateObject ! (1) : http://sapzape.tistory.com/12
008. 삽질은 끝나지 않는다! NtDuplicateObject ! (2) : http://sapzape.tistory.com/13
안녕하십니까?
여러분의 친구 삽잡이 인사드립니다 ㅎㅎ
지난시간에 이은
실제 구현한 변수값들의 실제 저장값을 확인해봄으로써
지난 시간의 설명을 이어가려합니다! (이전이야기(클릭가능))
자~시작해 봅시다!
자..~ 저기 우리 ntdll.dll 친구도 있고요~ 이 친구를 씹어먹기위한 친구들
LoadLibrary 와 GetProcAddress가 보입니다!
아까 잠시 두 친구들에 대해서 간략하게 소개를 했었는데요...
MSDN의 도움을 빌려봄으로 조금은 더 자세하게 알아봅시다!
오호... FileName이라 써있네요... 느낌상 FileName을 확인하겠네요
쓰고자하는 dll 혹은 exe 파일의 경로를 적어주시면 되겠습니다.
참고로 저 위 코드에 있는 L은 유니코드임을 나타내는 것이랍니다~
그리구 다음 친구~
대충 변수명을 봐도 감이 오시나요??? 그럼 설명을 마치겠습니다...
장난입니다... 죄송합니다...
저는 감이 오지 않기에 확인해봐야겠습니다... 허허... 확인해 봅시다...
LoadLibrary 친구로부터 받은 dll(exe 등..) 핸들을 매개변수로 삼는다는 것 같네요...
호출하고자 하는 함수의 이름을 받네요 ㅎㅎㅎ 여기에 우리가 씹어먹고자 했던
NtQuerySystemInformation, NtDuplicateObject 등을 입력시키는것이죠!
아하! 그렇다면 이해하셨나요??
그럼 디버깅을 통해서 확인해봅시다!!
그전에 우리의 친구 ProceeHacker를 통해 위 코드에서 부른 ntdll.dll가 로드된 주소를 확인해보자구요~
자... ntdll.dll이 로드되어있는 Base Address는 0x776770000 입니다!
그러면 이제 정말 확인에 들어갑니다!
위로 왔다갔다하기 귀찮으실테니 코드 소환!
쫜~
hDll에 LoadLibrary를 통해 얻은 주소 값이 저장될테구요...
pFunc에서 NtQuerySystemInformation 함수의 주소 값이 저장되겠군요!
어찌 확인이 되셨습니까? ProcessHacker을 통해 확인한 값과 일치하는 값이 나오네요!
내친김에 NtQuerySystemInformation 함수의 주소 값까지 확인해봅시다!
아하 0x7768fdb0이 NtQuerySystemInformation 함수의 주소 값이군요!
신기하네요! 저만 신기한가요... 허허허...
만약 그렇다면 죄송합니다...
다음시간에는 더욱 알찬 내용으로 여러분께 다가가도록 하겠습니다!
여러분 월요병...에 걸리시지 마시구 힘찬 한주 시작하시길바랍니다!
이상 주말이 너무 빨리 지나가서 심난하지않고 좀 놀란....
삽잡이였습니다!
[참고자료]
http://msdn.microsoft.com/en-us/library/windows/hardware/ff556502(v=vs.85).aspx
<-- NtDuplicateObject 설명
[구글 키워드]
http://sapzape.tistory.com/14
'삽질의 현장 > - 윈도우 커널' 카테고리의 다른 글
윈도우커널_#011_삽질은 끝이 없다! NtQeuryObject! (0) | 2015.06.09 |
---|---|
윈도우커널_#010_넌 뭐하는 녀석이냐 NTSTATUS! (0) | 2015.06.09 |
윈도우커널_#008_삽질은 끝나지 않는다! NtDuplicateObject ! (2) (0) | 2015.06.09 |
윈도우커널_#007_삽질은 끝나지 않는다! NtDuplicateObject ! (1) (0) | 2015.06.09 |
윈도우커널_#006_삽질의 시작! NtQuerySystemInformaton 정복기 (0) | 2015.06.09 |