떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
216.73.216.107
설정
다크 모드로 전환
로그인
개인정보 처리방침 개정 안내
Microsoft Windows/커널
(r1 문단 편집)
닫기
RAW 편집
미리보기
=== ntdll.dll === [[Windows API]]의 모든 함수는 ntoskrnl.exe에서 구현되고 ntdll.dll라는 라이브러리 파일을 통해 사용자 모드에 노출된다. 일반 프로그램들은 사용자 모드에서 실행되므로 커널에 직접적으로 접근할 수 없다. 그래서 ntdll.dll의 [[시스템 콜]]로 커널에 요청하는 방법을 사용한다. 파일 생성/삭제 등의 변경, 프로세스 생성, 그래픽 출력, 네트워크 사용 등, 거의 모든 행위는 시스템 콜이 필요하다. 윈도우의 시스템 콜 과정은 [[시스템 콜]] 문서 참고. ntdll.dll의 함수들이 무수히 많지만 대부분(특히 Nt 또는 Zw 접두어를 가진 함수)은 시스템 콜 역할만을 수행하고 함수 상당수가 문서화되어 있지 않다.[* [[https://learn.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntqueryinformationprocess|NtQueryInformationProcess]]와 같이 MSDN에 기재되어 있는 경우가 있지만 그 수가 적은 편이다.] 이는 ntdll.dll의 기능이 kernel32.dll 등의 Win32 API을 통해 제공되기 때문이다. 그래서 어떤 기능이 ntdll.dll에 구현되어 있지만 Win32 API에서 이를 수행하는 함수가 없다면 GetModuleHandle[* LoadLibrary를 사용할수도 있지만 ntdll.dll는 모든 사용자 프로세스에서 로드되기 때문에 GetModuleHandle를 사용하는 것이 좋다.]와 GetProcAddress를 통해 사용할 ntdll.dll 함수의 주소를 가져와서 호출해줘야 한다. 아니면 ntdll.lib 파일을 사용하여 ntdll.dll 함수를 정의하여 사용하는 방법도 있다. C계 코드 블루스크린에서 뜨는 오류 메시지는 이 파일에서 불러온다.
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-NC-SA 2.0 KR
또는
기타 라이선스 (문서에 명시된 경우)
로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.107) 주소 전체가 영구히 기록됩니다.
저장
사용자
216.73.216.107
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]
최근 토론
[불러오는 중...]