떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
216.73.216.107
설정
다크 모드로 전환
로그인
개인정보 처리방침 개정 안내
Microsoft Windows/커널
(r1 문단 편집)
닫기
RAW 편집
미리보기
==== Native ==== 특수한 서브시스템으로 윈도우 부팅 때 처음으로 먼저 진입하는 부분이기도 하다. ntoskrnl.exe, csrss.exe, smss.exe, autochk.exe, 각종 드라이버 등이 Native 프로그램이다. Native 프로그램은 오직 ntdll.dll의 함수만(드라이버의 경우 ntoskrnl.exe의 함수나 기타 타 드라이버의 함수)을 사용하여 동작하도록 되어 있다. Native 프로그램의 진입점은 NtProcessStartup이며, 프로그램의 기본 힙이 없으므로 직접 힙 객체를 생성하여 사용해야 한다. 먼저 RtlCreateHeap로 힙 객체를 생성한 후 RtlAllocateHeap 함수를 사용하여 메모리를 동적 할당한다. 이후 메모리가 더 이상 사용할 필요가 없다면 RtlFreeHeap 함수로 동적 할당된 메모리를 해제해야 하고 프로그램을 종료하겠다고 하면 RtlDestroyHeap 함수로 힙 객체를 제거해야 한다. 또한 NtProcessStartup 진입점은 VOID 유형이므로 프로그램이 끝날 때 NtProcessTerminate 함수를 호출하여 자기 자신을 종료시켜야 한다. 화면에 글자를 출력하려면 NtDisplayString 함수를 사용한다. [[https://learn.microsoft.com/en-us/sysinternals/resources/inside-native-applications|#]] ntdll.dll의 함수만 사용할 수 있으므로 '''표준 C언어 함수는 지원하지 않는다.''' 즉 printf, gets, strcpy, memcpy 같은 C언어 함수는 사용할 수 없으며 사용하려면 직접 구현해줘야 한다. 부팅 완료 후에는 Win32 모드로 진입하므로 Native 프로그램을 실행할 수 없다. 실행하려고 하면 Win32 모드에서 실행할 수 없다는 메시지가 뜬다.
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-NC-SA 2.0 KR
또는
기타 라이선스 (문서에 명시된 경우)
로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.107) 주소 전체가 영구히 기록됩니다.
저장
사용자
216.73.216.107
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]
최근 토론
[불러오는 중...]