다음을 통해 공유


[회보 보관 ^] [< 볼륨 2, 번호 5] [볼륨 3, 번호 2 >]

Systems Internals 뉴스레터 3권, 1호

http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich


2001년 4월 18일 - 이번 호의 내용:

  1. 사설

  2. SYSINTERNALS의 새 소식

    • PsService v1.01
    • PsFile v1.0
    • PsExec v1.11
    • HandleEx v4.0
    • DEBUGVIEW V4.13
    • Inside Windows 2000, 3판.
    • Windows 2000 Magazine 2월
    • Microsoft의 Sysinternals
  3. 내부 정보

    • 유용한 바로 가기 키
    • PnP 디버그 메시지
    • 리버스 엔지니어링 판결
    • 새 Windows XP 시스템 호출
    • 연결이 끊긴 네트워킹
    • WinDev
    • TechEd US
  4. 향후 예정 사항

    • Windows XP 프리페치 내부

스폰서: WINTERNALS 소프트웨어 ~~~~

Sysinternals Newsletter는 Winternals Software(Web, http://www.winternals.com.)에서 후원합니다 Winternals Software는 Windows NT/2K용 고급 시스템 도구의 선도적인 개발업체이자 제공업체입니다. Winternals 소프트웨어 제품에는 Windows NT 4.0용 FAT32, NTFSDOS Professional Edition(DOS용 읽기/쓰기 NTFS 드라이버) 및 원격 복구가 포함됩니다.

Winternals는 기존 Windows 95/98/Me 및 Windows 2000 지원에 NT 4 지원을 추가한 저렴하고 사용하기 쉬운 엔터프라이즈 조각 모음 솔루션인 Defrag Commander NE 버전 1.2를 발표하게 된 것을 자랑스럽게 생각합니다. Defrag Commander NE는 Windows 2000 및 Windows 95/98/Me의 내장된 조각 모음을 활용하고 Windows NT 4용으로 강력한 자체 조각 모음을 추가합니다. 이제 NT 또는 Windows 2000 시스템에 클라이언트 소프트웨어를 설치하지 않고도 간단한 MMC 스냅인에서 전체 Windows 기업의 조각 모음 일정을 관리할 수 있습니다. 10개 시스템 라이선스는 단 $169에 온라인 구매가 가능하며 수량에 따라 대폭 할인이 가능합니다. 자세한 내용은 http://www.winternals.com를 참조하세요.

여러분, 안녕하세요.

Sysinternals 뉴스레터에 오신 것을 환영합니다. 현재 뉴스레터의 구독자는 31,500명입니다.

Windows XP 베타를 설치할 때 가장 먼저 눈에 띄는 것 중 하나는 Luna라는 재설계된 사용자 인터페이스입니다. Luna의 모양과 느낌은 시작 메뉴의 동작에서 애플리케이션 메뉴 및 대화 상자의 디자인에 이르기까지 인터페이스의 모든 측면에 퍼져 있습니다. 이 전체 전환은 "테마" 엔진을 사용하여 이루어집니다. 테마는 테마 스타일 파일(.msstyles로 끝나는 파일)에 설명되어 있으며 Luna 테마 파일 luna.msstyle은(는) \Windows\Resources\Themes\Luna에 있습니다. 같은 디렉터리 아래에 shellstyle.dll이 있는 Shell이라는 하위 디렉터리가 있습니다. XP가 DLL을 사용하는 방법은 명확하지 않습니다. DLL은 Explorer에 의해 로드되고 HTML 스타일 시트가 내장되어 있지만 내보내기 기능은 없습니다. comdlg.dll 및 kernel32.dll이 이를 가져오고 모든 애플리케이션이 이러한 DLL의 복사본을 가져오기 때문에 모든 프로세스는 테마 클라이언트 라이브러리인 \Windows\System32\UxTheme.DLL의 로드된 복사본도 가져옵니다. 이 DLL은 IsThemeActive, IsAppThemed, GetCurrentThemeName, DrawThemeBackgroundGetThemeColor와 같은 기능을 내보냅니다.

레지스트리는 현재 테마가 지정되고 테마 퍼베이시브가 구성되는 곳입니다. HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes 아래에서 테마가 활성화되어야 하는 위치를 지정하는 "색상" 및 "아이콘"과 같은 값을 볼 수 있는 Apply라는 키를 찾습니다. 동일한 키 아래에서 Current 하위 키에는 현재 테마에 대한 .msstyles 파일의 경로가 있습니다.

WinAmp 및 Windows Media Player와 같은 응용 프로그램에서 "스키닝"이 유행하고 있음을 감안할 때, Microsoft가 제3자가 직접 테마를 개발하거나 최소한 .msstyles 파일 및 셸 스타일 DLL의 형식을 문서화하여 제3자가 테마 편집기를 개발할 수 있다고 가정할 수 있습니다. 그러나 여러분의 의견을 옳지 않은 것으로 판명될 것입니다. http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm)에 온라인으로 게시된 "Microsoft Windows XP: 개발자를 위한 기능은 무엇입니까?”라는 기사에서 Microsoft는 타사 테마를 허용할 의도가 없음을 분명히 밝힙니다.

"처음에는 다양한 Windows XP 스타일의 가능성이 Window Media Player와 같은 애플리케이션의 스킨 기능처럼 보일 수 있지만 차이점이 있습니다. 테마는 운영 체제의 시각적 스타일을 변경하지만 여전히 이전 버전의 Windows와 일관된 UI를 제공합니다. 테마는 시스템 전체에 적용되므로 이는 중요합니다. 버튼 제거와 같이 애플리케이션 스킨에 적용할 수 있는 변경 내용은 운영 체제 수준에서 적절하지 않습니다. 테마 파일 형식은 공개되지 않습니다. Microsoft는 일관된 사용자 인터페이스를 허용하고 디자인 연속성을 보장하기 위해 테마에 대한 디자인 제어를 유지합니다. 테마 개발자 키트는 Windows XP에서 사용할 수 없습니다."

그들이 그런 입장을 취한다고 확신하는 주장은 타사 테마가 어떻게든 UI를 깨뜨릴 수 있고 사용자가 Microsoft 지원에 도움을 요청할 수 있다는 것입니다. Windows Media Player에 대해 동일한 두려움이 없는 이유는 모르겠습니다. 그럼에도 불구하고 데스크톱과 애플리케이션에 테마와 같은 모양을 적용하는 방법이 있습니다. http://www.wincustomize.com/을(를) 방문하여 Windows에 Apple OS X 데스크톱의 모양과 느낌을 제공하는 새로운 Aqua-Soft(WindowBlinds 스킨 - http://www.windowblinds.net)와 같은 Windows 데스크톱 스킨을 찾으세요. 그리고 스키닝 커뮤니티가 릴리스된 모든 것을 스키닝하는 방법을 파악하는 데 끈질기게 노력하는 것을 감안할 때 현재 Microsoft의 테마 형식을 리버스 엔지니어링하는 사람들이 있다고 확신합니다. 테마 제어에 대한 Microsoft의 정책에 관계없이 누군가가 테마 편집기를 출시하는 것은 시간 문제입니다.

그렇다면 Windows XP 테마 편집기와 타사 테마가 나타나기 시작하면 Microsoft는 어떻게 할까요? 두고 봐야겠지만, 애플의 행동이 우리에게 미리보기를 제공하고 있을지도 모릅니다. 며칠 전 Apple은 Mac OS용 테마 편집기를 개발하는 회사에 중단 명령을 내렸습니다. http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. 테마 개발자는 주의해야 합니다.

뉴스레터 내용에 관심이 있을 것 같은 친구에게 뉴스레터를 전달하세요.

감사합니다!

-Mark

SYSINTERNALS의 새 소식

PSSERVICE V1.01

제 기억으로는 NT 4 및 Win2K 리소스 키트에는 명령줄 서비스 제어 유틸리티인 SC가 있었습니다. SC를 사용하면 로컬 또는 원격 시스템에서 Win32 서비스의 상태 및 구성을 보고 변경할 수 있습니다. PsService는 몇 가지 추가 기능이 있는 SC의 프리웨어 복제본입니다.

첫 번째는 PsService를 사용하면 대체 사용자 자격 증명을 사용하여 원격 시스템에 연결할 수 있다는 것입니다. 이는 실행하는 계정에 원격 시스템에 대한 관리 권한이 없지만 권한이 있는 계정에 액세스할 수 있는 경우에 유용합니다. 두 번째는 PsService의 검색 기능입니다. 네트워크에서 DNS, DHCP 또는 기타 서비스를 실행 중인 시스템을 잊어버린 경우 서비스 이름을 지정하고 서비스를 실행하는 컴퓨터를 보고할 수 있는 검색 기능이 유용합니다.

PsService는 Platform SDK에서 전체 문서를 찾을 수 있는 Service Control Manager API에 의존하며 PsService는 클라이언트 소프트웨어 설치가 필요하지 않습니다.

http://www.sysinternals.com/ntw2k/freeware/psservice.shtml.에서 PsService v1.01 다운로드

PSFILE V1.0

PsFile은 Windows NT/2K에서 "net file" 명령의 한계를 극복하는 무언가에 대한 요청에 응답하여 만든 도구입니다. NT 및 Win2K에서 내장된 "net" 명령을 "file" 옵션과 함께 사용하여 시스템에서 내보낸 공유에서 다른 컴퓨터가 연 파일을 나열할 수 있습니다. 그러나 net 명령은 긴 경로 이름을 자르고 로컬 시스템에서만 작동합니다.

PsFile은 net 명령과 동일한 API(Platform SDK에 문서화된 "Net" API)를 사용하지만 파일 이름을 자르지 않고 클라이언트 소프트웨어 설치 없이 로컬 및 원격 모두에서 작동합니다. .

http://www.sysinternals.com/pstools.htm.에서 PsFile v1.0 다운로드

PSEXEC V1.11

PsExec은 원격 시스템에서 프로그램을 실행할 수 있게 해주는 Windows NT/2K용 명령줄 애플리케이션입니다. 특히 강력한 이유는 이 도구가 콘솔 프로그램을 원격으로 활성화하여 대화형으로 실행할 수 있다는 것입니다. 예를 들어 PsExec을 사용하여 원격 시스템에서 명령 프롬프트 실행 파일(cmd.exe)을 실행하면 사실상 원격 셸이 있는 것이므로 클라이언트 소프트웨어를 설치할 필요가 없습니다.

가벼운 텔넷 역할 외에도 PsExec을 사용하면 "로컬 전용" 애플리케이션을 원격으로 활성화할 수 있습니다. 시스템의 네트워킹 구성을 보여주는 기본 제공 도구인 IpConfig는 원격 시스템의 구성을 보여줄 수 없습니다. 그러나 PsExec을 사용하면 원격으로 실행하고 출력을 로컬에서 볼 수 있습니다.

경우에 따라 애플리케이션이 실행되는 계정이 중요합니다. 레지스트리 또는 파일에 대한 변경 내용이 올바른 보안 컨텍스트에서 발생하도록 애플리케이션을 계정에서 실행해야 할 수 있습니다. 다른 경우에는 PsExec을 실행하는 것과 다른 곳에서 애플리케이션을 실행하는 것이 바람직할 수 있으며, 다른 경우에는 시스템 계정에서 원격 애플리케이션을 실행하기를 원할 수도 있습니다. PsExec은 이러한 모든 상황을 지원합니다.

기본적으로 PsExec은 "가장된" 보안 컨텍스트에서 프로그램을 실행합니다. 즉, 관리자 계정에서 PsExec을 실행하면 원격 프로세스가 관리자 계정에서 실행됩니다. 가장 능력에 대한 제한으로 인해 원격 프로세스는 원격 시스템의 네트워크 리소스에 액세스할 수 없습니다. PsExec의 명령줄에서 사용자 이름과 암호를 지정하면 PsExec은 대체 계정에서 원격 프로세스를 시작하고 원격 프로세스는 해당 계정에서 액세스할 수 있는 모든 네트워크 리소스에 액세스할 수 있습니다. 마지막으로 명령줄 옵션을 사용하면 PsExec이 시스템 계정(Win32 서비스가 실행되는 것과 동일한 계정)에서 원격 프로세스를 실행하도록 지시할 수 있습니다.

http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.에서 PsExec v1.11 다운로드

HANDLEEX V4.0

HandleEx는 컴퓨터에서 활성화된 프로세스 목록은 물론 열려 있는 운영 체제 리소스에 대한 핸들과 로드한 DLL을 보여주는 다각적인 도구입니다. 검색 기능과 프로세스, 핸들 및 DLL 속성에 대한 자세한 프레젠테이션을 통해 HandleEx는 DLL 버전 문제, 핸들 누수 및 특정 파일이나 디렉터리에 액세스하는 프로세스를 추적하는 데 완벽한 도구입니다.

Sysinternals 업데이트를 지켜본 적이 있다면 지난 몇 달 동안 HandleEx가 두 개의 주요 버전 번호를 뛰어넘었다는 것을 알게 될 것입니다. 첫 번째 주요 업데이트인 v3.0에서는 프로세스 보기의 애플리케이션 아이콘, 모든 목록 보기 항목에 대한 도구 설명, 훨씬 더 효율적인 새로 고침, 찾기에서 결과 항목을 클릭할 수 있는 향상된 검색 기능과 같은 여러 기능을 도입했습니다. 대화 상자를 열고 HandleEx가 적절한 핸들 또는 DLL 항목으로 이동하도록 합니다.

그러나 개발자에게 가장 유용한 기능은 "새로 고침 강조 표시"와 재배치된 DLL 강조 표시일 것입니다. 새로 고침 강조 표시는 보기를 새로 고칠 때 HandleEx의 동작을 나타냅니다. 프로세스, 핸들 또는 로드된 DLL을 포함하여 새로 고침 이전에 존재하지 않았던 새 항목은 녹색으로 강조 표시되고 더 이상 존재하지 않는 항목은 빨간색으로 강조 표시됩니다. 시각적으로 변경 내용을 알려주는 것 외에도 새로 열린 핸들이 새로 고침 후 녹색으로 표시되는 진행 중인 핸들 누수를 생생하게 볼 수 있습니다.

HandleEx 재배치-DLL 강조 표시는 DLL 재배치와 관련이 있으며, 개발자가 DLL을 빌드할 때 지정하는 기본 "기본 주소"를 적용할 수 없는 Windows의 모듈 로더 동작을 설명하는 용어입니다. 링커(DLL 또는 EXE 빌드의 최종 단계에 사용되는 도구)가 DLL에 대해 생성하는 코드에는 로더가 DLL의 기본 주소를 존중한다는 가정하에 내부 DLL 메모리 참조가 설정되어 있습니다. 기본 주소에서 시작하고 로드된 DLL 이미지의 크기를 수용하는 DLL을 로드하는 프로세스의 메모리 범위는 DLL이 기본 주소에서 로드할 수 있도록 비어 있어야 합니다. 기본 주소가 여러 프로세스에 적용되면 모든 프로세스가 동일한 DLL 코드 메모리를 공유하므로 메모리 사용 효율성이 달성됩니다.

예를 들어 다른 사람이 이미 원하는 주소 범위를 사용하고 있는 경우와 같이 로더가 DLL의 기본 주소를 적용할 수 없는 경우 로더는 "재배치"를 수행해야 합니다. 여기에는 DLL의 실제 로드 주소를 반영하기 위해 모든 내부 DLL 메모리 참조를 업데이트하는 작업이 포함됩니다. 프로세스의 로드 시간이 느려지는 것 외에도(일반적으로 눈에 띄지 않게) 재배치된 DLL 이미지는 선호하는 기본 주소에 로드된 DLL이 있는 다른 프로세스와 공유할 수 없습니다. 즉, 메모리를 사용하는 DLL의 두 번째 복사본을 효과적으로 얻을 수 있습니다.

DLL 모드에 있을 때 "재배치된 DLL 강조 표시" 옵션을 선택할 수 있으며, 결과적으로 HandleEx는 선호하는 기본 주소에 로드되지 않은 DLL에 대한 항목을 노란색으로 표시합니다. 개발자는 재배치를 피하기 위해 DLL 기본 주소를 재설정할 수 있습니다.

HandleEx가 버전 4.0으로 점프하는 것은 어떻습니까? 이 최신 버전의 HandleEx는 Win9x/Me 플랫폼에 완전한 핸들 보기 기능을 제공합니다. 이제 WinNT/2K/XP에서 HandleEx를 실행할 때와 마찬가지로 프로세스를 선택하고 열려 있는 핸들을 볼 수 있습니다. 뿐만 아니라 WinNT/2K/XP에서와 마찬가지로 이벤트, 뮤텍스 및 세마포어의 속성을 보면 해당 상태(유지됨, 신호됨)에 대한 정보가 나타납니다.

http://www.sysinternals.com/ntw2k/freeware/handleex.shtml.에서 HandleEx 4.0 다운로드

DEBUGVIEW V4.11

DebugView는 로컬 시스템이나 원격 시스템에 있는 애플리케이션이나 드라이버의 디버그 출력을 캡처할 수 있는 개발자 유틸리티입니다. 심지어 여러 시스템에서도 동시에 가능합니다. 이 최신 릴리스에는 Windows XP Beta 2와의 호환성, 일부 사용성 기능 및 WinNT/2K/XP의 장치 드라이버 개발자를 위한 기능이 추가되었습니다.

DebugView의 필터링 대화 상자를 사용하면 포함 및 제외 필터 마스크를 정의하여 보고 싶은 디버그 출력으로 범위를 좁힐 수 있습니다. 또한 각각 다른 사용자 지정 가능한 색상으로 최대 5개의 강조 표시 필터를 지정할 수 있습니다. 이전에는 다른 필터가 필요한 프로젝트가 있는 경우 프로젝트를 전환할 때마다 필터를 다시 입력해야 했습니다. DebugView 4.11을 사용하면 빠른 다시 로드를 위해 필터를 파일에 저장할 수 있습니다. 이전과 마찬가지로 DebugView는 이전에 종료했을 때 활성화된 필터로 시작합니다.

나중에 분석하거나 다른 추적과 비교하기 위해 디버그 출력 추적을 캡처해야 하는 경우가 있습니다. 새 버전의 DebugView 이전에는 로그 파일을 볼 수 있는 유일한 방법은 텍스트 편집기로 로그 파일을 로드하는 것이었습니다. 즉, 유용한 강조 표시 필터를 적용할 수 없었습니다. 이제 DebugView 로그 파일을 다시 DebugView로 로드하여 원래 캡처했을 때 본 방식으로 출력을 볼 수 있습니다. 여러 DebugView 창을 사용하면 추적을 비교할 수 있습니다.

마지막 새 기능인 부팅 시간 로깅은 NT/Win2K에서 DebugView의 크래시 덤프 지원을 칭찬합니다. 디버그뷰의 크래시 덤프 지원을 사용하면 장치 드라이버에서 출력을 캡처하고 드라이버가 시스템을 크래시하고 크래시 덤프가 활성화된 경우(전체 또는 커널) 디버그뷰를 사용하여 덤프에서 드라이버의 디버그 출력을 추출합니다. 이를 통해 크래시 지점까지 드라이버의 출력을 확인할 수 있습니다.

부팅 시간 로깅을 사용하면 부팅 프로세스 중에 부팅 시작 또는 시스템 시작 드라이버로 로드되는 드라이버의 출력을 캡처할 수 있습니다. DebugView 드라이버는 부팅 시간 로깅을 활성화한 후 부팅하는 동안 최대 1MB의 디버그 출력을 캡처하고 버퍼링합니다. 시스템이 가동된 후 DebugView 애플리케이션을 실행하면 버퍼링된 출력을 볼 수 있도록 가져옵니다. 또한 부팅 중에 드라이버가 크래시하고 크래시 덤프가 활성화된 경우 DebugView의 크래시 덤프 지원을 통해 크래시 전에 드라이버가 생성한 출력을 볼 수 있습니다.

http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.에서 DebugView v4.11 다운로드

INSIDE WINDOWS 2000, 3판

Windows 2000 내부에 대한 공식 서적을 지금 사용할 수 있습니다! David Solomon(www.solsem.com)과 Mark Russinovich가 공동 저술한 이 에디션은 네트워킹, 플러그 앤 플레이, 전원 관리, 서비스, 레지스트리, WMI, 부팅에 대한 새로운 내용을 포함하여 이전 버전보다 40% 이상 더 큽니다. 종료 및 저장. 또한 Windows 2000 내부를 조사하기 위해 다른 곳에서는 사용할 수 없는 몇 가지 강력한 도구가 들어 있는 CD도 포함되어 있습니다.

http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131에 대한 Amazon.com 페이지로 이동하면 책이 9월에 출시된 이후 단 두 개의 리뷰가 게시되었음을 알 수 있습니다. 책이 있다면 다른 예비 독자들과 의견을 공유할 것을 강력히 권장합니다.

책의 목차를 확인하고 지금 http://www.sysinternals.com/insidew2k.htm.을(를) 통해 주문하세요.

2월 WINDOWS 2000 매거진

Windows 2000 Magazine 2월호에서 NT/Win2K 크래시 덤프 분석에 대한 기사를 확인하세요. 이 문서는 크래시 덤프 구성의 기본 사항을 안내하고 운영 체제에서 크래시 덤프를 생성하는 방법을 설명합니다(덤프 생성에 실패할 수 있는 이유에 대한 힌트 포함). 그런 다음 최신 덤프 분석 도구를 얻을 수 있는 위치를 설명하고 강력한 새 Microsoft 유틸리티인 Kanalyze를 사용하는 과정을 안내합니다. 마지막으로 커널 디버거를 사용하여 덤프를 검사하는 방법을 간단히 살펴봅니다. 덤프의 일부만 분석을 통해 원인을 밝히더라도 유용한 정보를 찾을 수 있습니다.

기사는 http://www.sysinternals.com/publ.shtml에 있는 링크를 통해 온라인에 게시되며 여기에서 모든 간행물에 대한 링크를 찾을 수 있습니다.

WWW.MICROSOFT.COM의 SYSINTERNALS

Sysinternals는 지난 뉴스레터 이후 더 많은 Microsoft 기술 자료(KB) 기사에 등장하여 Sysinternals 도구를 참조하는 총 17개 항목을 찾았습니다.

  • Q274038: PRB: ASP 오류 8002801d "라이브러리가 등록되지 않음"
    http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
    이 문서는 Active Server Pages 오류를 해결하기 위해 사용자를 Regmon으로 안내합니다.

  • Q232830: HOWTO: 파일 핸들 소유권 결정
    http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    파일로 인해 어떤 프로세스가 열렸는지 알고 싶으신가요? 이 기술 자료 문서는 HandleEx를 소개합니다.

  • Q2163868: PRB: 파일 사용 중일 때 애플리케이션 설정 중 액세스 위반
    http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    복사하려는 파일이 사용 중인 경우 Visual Basic 설치 애플리케이션이 크래시할 수 있습니다. HandleEx는 방해가 되는 프로세스를 추적하는 데 이상적인 도구입니다.

  • Q286198: HOWTO: DLL 파일에서 "권한 거부" 오류 추적
    http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
    Filemon(이 문서에서는 Regmon도 언급함)을 사용하여 COM 또는 MTS 애플리케이션의 어떤 프로세스에서 "액세스 거부" 오류가 발생하는지 확인할 수 있습니다.

  • Q246199: BUG: 확장 저장 프로시저의 변경된 로케일 설정으로 인해 잘못된 결과가 발생할 수 있음
    http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
    이 문서에서는 ListDLL을 사용하여 SQL Server에서 사용 중인 C 런타임 라이브러리의 버전을 확인할 것을 권장합니다.

  • Q196453: NTVDM 및 WOW 시작 오류 문제 해결 http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP 16비트 애플리케이션을 시작할 때 문제가 발생하는 사용자는 16비트 환경 하위 시스템(NTVDM)에서 액세스 오류가 있는 파일을 확인하기 위해 Filemon을 가리킵니다.

내부 정보

유용한 키보드 단축키

많은 분들이 최신 키보드의 Windows 키를 단순히 공간을 차지하는 키로 보고 계실 것입니다. 저는 최근까지 내가 자주 수행하는 작업에 대한 Windows 키 키보드 단축키를 우연히 발견했고 지금은 자주 사용하는 키에서 로고를 착용하고 있습니다. 모든 버전의 Windows에서 작동하는 유용한 키보드 단축키 몇 가지를 공유하고자 합니다.

작업 바로 가기
작업 관리자 실행 Ctrl+Shift+이스케이프
시스템 속성 대화 상자 표시 Windows+Break
모든 창을 최소화합니다. Windows+m
모든 창 최대화 Windows+M
내 컴퓨터 열기 Windows+e
파일 검색 Windows+f
실행 대화 상자 열기 Windows+r

제가 시행착오를 거쳐 결정한 후에 David Solomon은 Windows 2000 도움말의 "Natural Keyboard Shortcuts"에 설명되어 있다고 지적했습니다.

PNP 디버그 메시지

Windows 2000용 플러그 앤 플레이 드라이버를 개발하고 있다면 Windows 2000 정품 빌드에서도 열거 및 드라이버 로드 프로세스 중에 광범위한 플러그 앤 플레이 시스템 디버그 메시지를 생성할 수 있다는 사실에 놀랄 것입니다. 시스템 부팅 시작 시 커널 디버거가 중단되도록 하고 내부 커널 변수 PnpEnumDebugLevel을 2로 설정합니다(대부분의 메시지는 레벨 1에서 트리거됨). 다음은 swenum 드라이버(소프트웨어 열거형 버스 드라이버)를 로드하는 PnP 관리자를 보여주는 출력의 예입니다.

.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice:         Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice:         Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice:                 Service Name swenum
IopCallDriverAddDevice:                 DriverName is \Driver\swenum
IopCallDriverAddDevice:                 Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice:         Routine returned 00000000
.

리버스 엔지니어링 판결

Sysinternal을 팔로우한 분들은 제가 DDK에 제공되는 드라이버 소스를 제외하고 Windows 소스 코드에 액세스할 수 없다는 것을 알고 있으며, SoftICE와 자체 사용자 지정 분해기를 사용하여 구현의 복잡성을 알게 되었습니다.

"리버스 엔지니어링: 필요한 기능 또는 불법 활동?"이라는 기사를 접했습니다. (http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001), 소니와 커넥틱스 사이의 사건에서 제 9 회 미국 순회 항소 법원의 1 월 판결을 설명합니다. Sony는 Connectix가 PC에서 Sony PlayStation션 게임을 실행할 수 있는 프로그램인 "가상 게임 스테이션"을 개발한 후 Connectix를 상대로 소송을 제기했고, 법원은 Connectix가 에뮬레이터를 개발할 수 있도록 PlayStation을 리버스 엔지니어링할 경우 위법이 아니라고 판결했습니다.

리버스 엔지니어링의 적법성 범위, 특히 이를 금지하는 수축 포장 라이선스를 고려할 때 여전히 모호하지만 이 사례는 리버스 엔지니어링과 관련이 있습니다.

WINDOWS XP 커널 업데이트

NT 4와 Windows 2000 사이의 이동과 달리 Windows XP 커널은 더 미묘한 변화를 겪었으며 그 중 많은 부분이 성능 향상을 목표로 합니다. 드라이버 개발자가 사용할 수 있는 커널 API는 200개 이상의 새로운 내보낸 커널 기능으로 구체화되어 이전의 일부 구멍을 채웠습니다. 예를 들어 Filemon 및 기타 Sysinternals 도구는 문서화되지 않은 프로세스 환경 블록에 도달하여 작업을 수행하는 프로세스의 이름을 얻습니다. Windows XP에서는 PsGetProcessImageFileName을(를) 호출할 수 있습니다. 프로세스 특성을 얻고 설정하기 위한 거의 30개의 새로운 Ps 호출, 출력 유형 및 디버그 수준을 분류할 수 있는 새로운 디버그 출력 API, 레지스트리 하이브 저장을 위한 새로운 시스템 호출이 있습니다. 파일에 저장되는 대신 비휘발성 메모리에 저장되는 64비트 Windows XP와 동등한 Boot.ini를 편집하기 위한 ZwQueryBootOptions, ZwSetBootEntryOrderZwDeleteBootEntry과(와) 같은 소수의 API도 있습니다.

그러나 커널 외에 더 중요한 변경 내용이 있으며 대부분 장치 드라이버 또는 커널 지원에 의존합니다. 예를 들어, 파일 시스템 필터 드라이버(sr.sys)의 도움으로 시스템을 이전 시점으로 롤백할 수 있도록 파일 변경 내용을 추적하는 시스템 복원 서비스가 있습니다. volsnap.sys라는 저장소 필터 드라이버가 있으며 파일 시스템 드라이버와 협력하여 볼륨의 특정 시점 복사본을 만들 수 있습니다. 여러 사용자가 로그인하고 전환할 수 있도록 커널에 내장된 터미널 서비스 지원을 사용하는 빠른 사용자 전환 서비스와 파일 시스템 드라이버에서 제공하는 향상된 조각 모음 API 지원이 있습니다.

Microsoft는 http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip.에서 많은 개선 사항을 설명하는 백서를 게시했습니다. 다양한 수준의 세부 사항이 있으며 구현 및 동작에 대한 많은 질문에 대한 답변이 없지만 전반적으로 상당히 좋은 리뷰입니다. 물론 미래의 Sysinternals 뉴스레터와 기사, Windows 2000 잡지 기사를 보고 일부 답변을 얻을 수 있습니다.

연결되지 않은 네트워킹

내 개발의 대부분은 네트워크 지원 애플리케이션에 중점을 두지만 Windows 2000에서는 연결이 끊긴 컴퓨터(예: 랩톱)를 기본 구성으로 부팅할 때 이러한 애플리케이션을 테스트할 수 없습니다. 시스템이 네트워크 연결을 감지하지 않으면 TCP/IP 스택이 활성화되지 않기 때문입니다. 이는 예를 들어 dir \\laptop\c$(여기서 "노트북"은 컴퓨터 이름임)과 ping 127.0.0.1 모두 연결이 끊긴 시스템에서 실패함을 의미합니다. 도메인 기반 컴퓨터가 있는 경우 부팅하는 동안 지연이 발생할 수도 있습니다.

이에 대한 두 가지 해결 방법이 있습니다. 하나는 하드웨어 마법사를 사용하여 설치할 수 있는 가상 네트워크 어댑터인 Microsoft 루프백 어댑터를 설치하는 것입니다. 두 번째는 Microsoft KB 문서 Q239924: http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP.에 설명된 대로 레지스트리 값을 설정하여 시스템이 연결이 끊어진 것을 감지하지 못하도록 하는 미디어 감지를 비활성화하는 것입니다. 이러한 접근 방식 중 하나를 사용하면 연결이 끊긴 시스템에서도 TCP/IP 스택이 활성화되므로 네트워킹 API 및 UNC 경로(예: \\laptop\c$)를 통해 로컬 시스템에 액세스할 수 있습니다.

WINDEV

Windows 개발자 회의인 Windev가 올해 6월 11일부터 15일까지 보스턴에서 개최됩니다. Win32, 시스템 및 .NET 프로그래밍 분야의 모든 유명 인사들이 참석할 예정이며 David Solomon(www.solsem.com)과 저 모두가 발표하는 Windows 2000 내부에 대한 세션에 참석할 수 있는 올해의 유일한 시간입니다. Dave와 저는 첫째 날 "Inside Windows 2000 Fundamentals" 자습서를 공동으로 하루 동안 제공합니다. 또한 Windows의 프로세스 간 통신 메커니즘 프로그래밍에 대한 세션과 Windows XP의 새로운 기능에 대한 세션도 가르치고 있습니다.

내 강연의 초록을 볼 수 있으며 http://www.sysinternals.com/ntw2k/info/talk.shtml.에서 Windev 웹사이트 링크를 찾을 수 있습니다.

미국 기술

TechEd는 지난 몇 년 동안 10,000명이 참가하고 매진된 Microsoft의 프리미어 컨퍼런스입니다. 올해는 6월 17일부터 21일까지 조지 아주 애틀랜타에서 개최되며 초점은 .NET에 맞춰져 있지만 Microsoft는 "A Tour of Sysinternals Tools" 및 "Introduction to Windows NT/2000 Crash Dump Analysis" 발표에 저를 초대했습니다. David Solomon도 참석하여 Windows 2000 메모리 관리와 프로세스 및 스레드 내부에 대해 발표할 것입니다.

유럽에 계신 분들은 David와 제가 7월 3일부터 6일까지 바르셀로나에서 개최되는 TechEd Europe에서 동일한 세션을 발표하는 것을 보실 수 있습니다.

제 초록을 보고 http://www.sysinternals.com/ntw2k/info/talk.shtml.에서 TechEd 홈페이지 링크를 따라가세요.

향후 예정 사항

INSIDE WINDOWS XP 프리페칭

Windows XP에서 가장 눈에 띄는 개선 사항 중 하나는 빠른 부팅 시간입니다. 프리페칭은 개선의 기초입니다. XP는 부팅하는 동안 디스크 액세스를 모니터링하여 참조되기 전에 애플리케이션을 메모리에 로드하기 위해 데이터를 사용하는 후속 부팅에서 사용할 정보를 저장합니다. 다음 시간에는 프리페치 메커니즘 내부로 들어가 XP가 이를 구현하는 방법을 설명하겠습니다.


Sysinternals 뉴스레터를 읽어주셔서 감사합니다.

발행일: 2001년 4월 18일 수요일 오후 7:04 by ottoh

[회보 보관 ^] [< 볼륨 2, 번호 5] [볼륨 3, 번호 2 >]