An Entity of Type: building, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computing the Process Environment Block (abbreviated PEB) is a data structure in the Windows NT operating system family. It is an opaque data structure that is used by the operating system internally, most of whose fields are not intended for use by anything other than the operating system. Microsoft notes, in its MSDN Library documentation — which documents only a few of the fields — that the structure "may be altered in future versions of Windows". The PEB contains data structures that apply across a whole process, including global context, startup parameters, data structures for the program image loader, the program image base address, and synchronization objects used to provide mutual exclusion for process-wide data structures.

Property Value
dbo:abstract
  • In computing the Process Environment Block (abbreviated PEB) is a data structure in the Windows NT operating system family. It is an opaque data structure that is used by the operating system internally, most of whose fields are not intended for use by anything other than the operating system. Microsoft notes, in its MSDN Library documentation — which documents only a few of the fields — that the structure "may be altered in future versions of Windows". The PEB contains data structures that apply across a whole process, including global context, startup parameters, data structures for the program image loader, the program image base address, and synchronization objects used to provide mutual exclusion for process-wide data structures. The PEB is closely associated with the kernel mode <span class="n">EPROCESS</span><span class="w"></span> data structure, as well as with per-process data structures managed within the address space of the Client-Server Runtime Sub-System process. However, (like the CSRSS data structures) the PEB is not a kernel mode data structure itself. It resides in the application mode address space of the process that it relates to. This is because it is designed to be used by the application-mode code in the operating system libraries, such as NTDLL, that executes outside of kernel mode, such as the code for the program image loader and the heap manager. In WinDbg, the command that dumps the contents of a PEB is the !peb command, which is passed the address of the PEB within a process' application address space. That information, in turn, is obtained by the !process command, which displays the information from the <span class="n">EPROCESS</span><span class="w"></span> data structure, one of whose fields is the address of the PEB. The contents of the PEB are initialized by the <span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span> system call, the Native API function that implements part of, and underpins, the Win32 <span class="n">CreateProcess</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessAsUser</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessWithTokenW</span><span class="p"></span><span class="w"></span>, and <span class="n">CreateProcessWithLogonW</span><span class="p"></span><span class="w"></span> library functions that are in the kernel32.dll and advapi32.dll libraries as well as underpinning the <a href="/wiki/Fork_(file_system)" title="Fork (file system)">fork</a> function in the Windows NT POSIX library, posix.dll. For Windows NT POSIX processes, the contents of a new process' PEB are initialized by <span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span> as simply a direct copy of the parent process' PEB, in line with how the <span class="n">fork</span><span class="p"></span><span class="w"></span> function operates. For Win32 processes, the initial contents of a new process' PEB are mainly taken from global variables maintained within the kernel. However, several fields may instead be taken from information provided within the process' image file, in particular information provided in the <span class="n">IMAGE_OPTIONAL_HEADER32</span><span class="w"></span> data structure within the PE file format (PE+ or PE32+ in 64 bit executable images). The WineHQ project provides a fuller PEB definition in its version of winternl.h. Later versions of Windows have adjusted the number and purpose of some fields. (en)
  • 프로세스 환경 블록 (PEB: Process Environment Block)은 윈도우 NT에서의 데이터 구조체이다. 이것은 운영체제 내부에서 사용하는 이다. 마이크로소프트는 마이크로소프트 개발자 네트워크(MSDN) 라이브러리 문서에서(오직 몇 개의 필드만 문서화한) 아마 다음 버전의 구조체에서는 바뀌게 될 것이라고 언급했다. PEB는 전역 문맥, 시작 파라미터, 프로그램 이미지 로더를 위한 데이터 구조체, 프로그램 이미지 베이스 주소 그리고 동기화 객체들을 포함하는, 프로세스 전체에 적용되는 데이터 구조체를 담고 있다. PEB 커널 모드 <span class="n">EPROCESS</span><span class="w"></span> 데이터 구조체 뿐만 아니라 클라이언트/서버 런타임 하위 시스템의 주소 공간에서 관리되는 프로세스 당 데이터 구조체와 밀접하게 관련되어 있다. 그러나 PEB는 자체적으로는 (CSRSS 데이터 구조체처럼) 커널 모드 데이터 구조체가 아니다. 이것은 관련된 프로세스의 사용자 모드 주소 공간에 위치한다. 왜냐하면 NTDLL 같은 운영체제 라이브러리의 사용자 모드 코드에서 사용되기 위해 디자인되었기 때문이다. WinDbg에서, PEB의 내용을 복사해 오는 명령어는!peb 이다. 결국, 이 정보는 <span class="n">EPROCESS</span><span class="w"></span> 데이터 구조체(필드 중 하나가 PEB의 주소이다.)의 정보를 보여주는 !process 명령어에 의해서 얻어진다. PEB의 내용은 <span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span> 시스템 호출에 의해 초기화 된다. 이 네이티브 API 함수는 윈도우 라이브러리 파일의 <span class="n">CreateProcess</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessAsUser</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessWithTokenW</span><span class="p"></span><span class="w"></span>, 그리고 <span class="n">CreateProcessWithLogonW</span><span class="p"></span><span class="w"></span> 라이브러리 함수들과, 라이브러리의 <a href="/wiki/%ED%8F%AC%ED%81%AC_(%EC%8B%9C%EC%8A%A4%ED%85%9C_%ED%98%B8%EC%B6%9C)" title="포크 (시스템 호출)">fork</a> 함수를 구현한다. 윈도우 NT POSIX 프로세스들에서, 새로운 프로세스의 PEB의 내용은 <span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span>에 의해 초기화된다. Win32 프로세스들에서는, 새로운 프로세스의 PEB의 내용에 대한 초기화는 주로 커널 내부에서 유지되는 전역 변수들에 의하여 옮겨진다. 그러나 몇몇 필드들은 대신 프로세스의 이미지 파일 내부에 의해서 정보가 제공된다. 특히 PE 파일 포맷의 <span class="n">IMAGE_OPTIONAL_HEADER32</span><span class="w"></span> 데이터 구조체가 그 역할을 한다. (ko)
  • 进程环境块(PEB)是 Windows NT操作系统内部使用的数据结构,用以存储每个进程的运行时数据。 Microsoft的MSDN文档中仅公开了PEB的少数几个域,该结构“在未来的Windows版本中可能会修改”。PEB包含的数据结构适用于整个进程,如全局上下文,启动参数,程序image装载器的数据结构,程序image的基地址,进程级互斥同步访问对象等。 PEB与kernel mode <span class="n">EPROCESS</span><span class="w"></span>数据结构密切相关。也是逐进程数据结构,在客户-服务器运行时子系统(CSRSS)进程地址空间被管理。但是,类似于CSRSS数据结构,PEB自身并不是内核模式数据结构。它驻留在所关联的进程的用户态内存空间中。这是因为它被设计为被操作系统的用户态的程序所使用,如NTDLL,在内核态之外执行,如程序映象的加载器与堆管理器。 WinDbg中,卸载PEB内容的命令是!peb,命令参数是PEB在进程地址空间的地址,它实际上是通过!process命令获取,将显示来自于<span class="n">EPROCESS</span><span class="w"></span>数据结构的信息,其中一个域是PEB地址。 PEB的内容通过系统调用<span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span>初始化。该系统调用也是Native API的Win32函数 <span class="n">CreateProcess</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessAsUser</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessWithTokenW</span><span class="p"></span><span class="w"></span>, <span class="n">CreateProcessWithLogonW</span><span class="p"></span><span class="w"></span> (在中)的实现基础,也是Windows NT POSIX的posix.dll中的API函数<a href="/wiki/Fork_(%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8)" title="Fork (系统调用)">Fork</a>的实现基础. 对于Windows NT POSIX进程,新进程的PEB内容通过简单直接复制父进程的PEB来初始化。<span class="n">NtCreateUserProcess</span><span class="p"></span><span class="w"></span> 这是在<span class="n">fork</span><span class="p"></span><span class="w"></span>函数内部实现。对于Win32进程,新进程的PEB的初始化主要来自内核维护的全局变量。但几个域的初始化来自程序映象,特别是来自PE文件格式(PE+ 或 PE32+在64位)的<span class="n">IMAGE_OPTIONAL_HEADER32</span><span class="w"></span>数据结构。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 28137693 (xsd:integer)
dbo:wikiPageLength
  • 9492 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1027478004 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • In computing the Process Environment Block (abbreviated PEB) is a data structure in the Windows NT operating system family. It is an opaque data structure that is used by the operating system internally, most of whose fields are not intended for use by anything other than the operating system. Microsoft notes, in its MSDN Library documentation — which documents only a few of the fields — that the structure "may be altered in future versions of Windows". The PEB contains data structures that apply across a whole process, including global context, startup parameters, data structures for the program image loader, the program image base address, and synchronization objects used to provide mutual exclusion for process-wide data structures. (en)
  • 프로세스 환경 블록 (PEB: Process Environment Block)은 윈도우 NT에서의 데이터 구조체이다. 이것은 운영체제 내부에서 사용하는 이다. 마이크로소프트는 마이크로소프트 개발자 네트워크(MSDN) 라이브러리 문서에서(오직 몇 개의 필드만 문서화한) 아마 다음 버전의 구조체에서는 바뀌게 될 것이라고 언급했다. PEB는 전역 문맥, 시작 파라미터, 프로그램 이미지 로더를 위한 데이터 구조체, 프로그램 이미지 베이스 주소 그리고 동기화 객체들을 포함하는, 프로세스 전체에 적용되는 데이터 구조체를 담고 있다. PEB 커널 모드 <span class="n">EPROCESS</span><span class="w"></span> 데이터 구조체 뿐만 아니라 클라이언트/서버 런타임 하위 시스템의 주소 공간에서 관리되는 프로세스 당 데이터 구조체와 밀접하게 관련되어 있다. 그러나 PEB는 자체적으로는 (CSRSS 데이터 구조체처럼) 커널 모드 데이터 구조체가 아니다. 이것은 관련된 프로세스의 사용자 모드 주소 공간에 위치한다. 왜냐하면 NTDLL 같은 운영체제 라이브러리의 사용자 모드 코드에서 사용되기 위해 디자인되었기 때문이다. (ko)
  • 进程环境块(PEB)是 Windows NT操作系统内部使用的数据结构,用以存储每个进程的运行时数据。 Microsoft的MSDN文档中仅公开了PEB的少数几个域,该结构“在未来的Windows版本中可能会修改”。PEB包含的数据结构适用于整个进程,如全局上下文,启动参数,程序image装载器的数据结构,程序image的基地址,进程级互斥同步访问对象等。 PEB与kernel mode <span class="n">EPROCESS</span><span class="w"></span>数据结构密切相关。也是逐进程数据结构,在客户-服务器运行时子系统(CSRSS)进程地址空间被管理。但是,类似于CSRSS数据结构,PEB自身并不是内核模式数据结构。它驻留在所关联的进程的用户态内存空间中。这是因为它被设计为被操作系统的用户态的程序所使用,如NTDLL,在内核态之外执行,如程序映象的加载器与堆管理器。 WinDbg中,卸载PEB内容的命令是!peb,命令参数是PEB在进程地址空间的地址,它实际上是通过!process命令获取,将显示来自于<span class="n">EPROCESS</span><span class="w"></span>数据结构的信息,其中一个域是PEB地址。 (zh)
rdfs:label
  • 프로세스 환경 블록 (ko)
  • Process Environment Block (en)
  • 进程环境块 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License