유저레벨에서 강제 리부팅



커널에선 강제 리부팅 할 수 있는 방법이 참 많은데
유저에선 방법을 찾기가 참 쉽지 않죠 -_-;
기껏해야 ExitWindowsEx 정도?

얼마전에 고민을 해보다가 한번 이런 방법은 어떨지 생각해봤습니다.
윈도우 중요프로세스를 날려버리는거죠.
안 돌아가는 머리로 끙끙대다가 생각난 개꽁수인데
해보니 잘 먹히네요 ㅎㅎ

즉, csrss.exe 같은넘을 터미네이트 시켜버리면 아주 멋지게 리붓이 됩니다 :)
그런데 csrss.exe 는 시스템 권한이 필요하므로 일반 어드민도 건들 수가 없죠?
(작업관리자로 터미네이트 해보신분들, "중대한 프로세스니 건들지마 ㅅㅂ" 라는 메시지 보셨을겁니다)

따라서 이넘을 조지고 싶으면 SeDebugPriviledge 권한을 얻어야 합니다.
그넘을 얻은후 가볍게 터미네잇! 하시면 윈도 바탕화면이 없어지고 아름다운 검은화면으로
부팅됩니다. :)

한번 해보겠습니다.

먼저 SeDebugPriviledge 권한을 얻는 코드입니다.
다른 권한을 얻을때도 사용되는 코드라 모듈화된것으로 붙혀놨습니다.
인자로는 SE_DEBUG_NAME 혹은 "SeDebugPriviledge" 을 주시면 됩니다.

#define SE_DEBUG_NAME   _TEXT("SeDebugPriviledge"); 로 전처리 되어있으니까요.





이제 저 함수를 초반에 한번 불러주시고 csrss.exe 를 터미네이트 시키시면 되겠죠.




어차피 리붓시킬 코드니 if (hPsApi) ... 따위의 검사 루틴은 사용하지 않았씁니다.
그리고 csrss.exe를 찾는모습을 되도록이면 공개하고 싶지 않아서, 프로세스 리스트의 
배열순서를 감안하여 csrss.exe 위치인 dwProcesses[3] 이라는 쌍무식한 짓을 했습니다.

한번 해보세요.
PC가 맛탱이 가는거는 책임 못지니 버철PC등에서 하시면 좋겠습니다 :)


window31. 2008년 9월
Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/207 관련글 쓰기

댓글을 달아주세요

  1. 2008/10/16 21:10
    댓글 주소 수정/삭제 댓글
    저희 집에서는 UNKNOWN_HARD_ERROR 블루스크린이 발생하더군요.
    • 2008/10/18 17:59
      댓글 주소 수정/삭제
      아하 그렇군요!
  2. 2010/03/03 18:14
    댓글 주소 수정/삭제 댓글
    병탁씨 잘쓸께용...
    오늘 딱 이게 필요한... ㅋㅋㅋ~
  3. 2010/03/16 18:52
    댓글 주소 수정/삭제 댓글
    csrss 꺼도 몇 초간 제대로 돌아가는 제 컴퓨터는 뭘까요... ㄷㄷ

    또한 wininit.exe 같은 경우 끄면 즉각 블루스크린이 뜨네요. ㅋ

BLOG main image
by window31

카테고리

분류 전체보기 (281)
Reverse Engineering (21)
C, C++ (20)
Kernel (8)
Guitar (19)
잡담 (77)
etc (8)
who am i (8)
보안 이야기 (88)
Tools (3)
월간 마이크로소프트웨어/그.. (28)

글 보관함