BLOG main image
분류 전체보기 (145)
궁시렁 (41)
컴쟁이의 연구실 (66)
리버싱 (21)
배워보자 (3)
좋은 곳 (10)
seyool님의 언팩미#1 들여다보기.
jz in reverse engineering
MS API 드래프트 제 1버전 공개
낚시광준초리의 Blog 세상(IT-Fo..
[Kernel] KeServiceDescriptorTa..
我好电脑,我是一名的程序设计员..
SSDT에 대한 고찰
::거듭나기::
불필요한 관심
^0^range.Net - 신은 불공평하다..
141,652 Visitors up to today!
Today 12 hit, Yesterday 22 hit
daisy rss
^0^range.net
'2009/08/28'에 해당되는 글 1건
2009/08/28 12:30
smss.exe가 하는일을 살펴보다가 재미난 것을 발견했습니다.
(smss가 하는일은 windows internals 4th 책 p376에 나와있더라구요.. 5th 영문판은 더 자세하게 나와있네요)
대상 OS는 Windows 2000 Server SP4 입니다.
먼저 ProcExp로 smss.exe의 Properties를 살펴보았습니다.

<procexp.exe에서 smss의 모습>


procexp로 살펴본 smss프로세스는 6개의 스레드를 가진것을 볼 수 있는데요. 여기서 TID 164, 168은
동일한 Start Address를 가지고 있으므로(SmApiPort에 관한 스레드) 이 2개를 제외한 다른 스레드를
살펴보았습니다.

한쪽에 디버거를 실행하고 노트패드를 어태치 후 Break, Run 을 반복 수행하면 smss.exe의
TID중 172, 112 스레드의 Context Switches 카운트가 증가하는 것을 알 수 있었습니다.

그래서 TID 112 스레드를 Suspend 시킨 후, 디버거를 살펴보니 Break, Run이 수행되지 않더라구요.
다시 TID 112 를 Resume 해주었더니 디버거가 잘 동작하네요. 반대로 TID 172를 Suspend시켜도
동일하게 디버거는 작동하지 않더라구요.

TID 112와 172는 디버깅과 관련된 스레드임이 분명한것 같습니다.
조금더 살펴보면 무언가 재미난 것이 숨겨져 있지 않을까요..

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://0range.net/trackback/300 관련글 쓰기
chpie | 2009/08/28 20:06 | PERMALINK | EDIT/DEL | REPLY
오왕.. 신기해요 ㅎㅎ
BlogIcon seyool | 2009/08/29 03:16 | PERMALINK | EDIT/DEL
그런데 xp에서는 안되더라구요.. :-)
Name
Password
Homepage
Secret
prev"" #1 next