본문 바로가기
IT창고/API

테이티브 API/NativeAPI

by 창구창고 2007. 1. 22.
반응형

윈도우 2000 아키텍쳐
kernel32.dll에 CreateFile()이 있다.
Ntdll.dll이라는 파일이 있다.
위의 dll은 사용자 공간에 있다.
kernel32.dll의 CreateFile()을 부르면 Ntdll.dll이라는 파일의 NtCreateFile()함수를 부른다.

여기까지가 Win32 API공간이다.
Ntdll.dll에는 천여개의 함수들이 있는데 API가 사용한다고 해서..
NativeAPI라고 한다.

윈도우 2000의 운영체제 파일은
NTOSKRN.exe 이다.
이 안에 들어있는 ZwCreateFile()함수를 불러서 하드에 파일을 불러들이는 것이다.
Win32에서 커널공간을 부를수 있는 문을 cllgate라고 한다.
윈도우에선 Int2E 리눅스에선 Int80

Win32에서는 네이티브를 거치고
커널에서 -> win32
테이블이 있는데 구조는 다음과 같다(systm call Table)
---------------------------------
| 인덱스       |  함수 포인터     |
---------------------------------
이런형태로 반복되어 있다.
인덱스의 함수포인터를 불러서 win32공간의 함수를 부른다.
ServiceDesriptor라고 한다

반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."