#topicpath
-----
*Native API [#w2039ad0]
Native API は、システムを直接制御する Windows NT 系 の API 群です。多くは Kernel-mode と User-mode との橋渡し的な API として使用されることが目的のようです。

Native API の殆どはドキュメント化されておらず、通常のプログラムで使用することは''禁忌''とされている API です。当然、Microsoft 社からの保障もありませんし、OS のバージョンアップに伴う仕様変更にも耐えられる保障もありません。

*関連情報 [#q0118d82]
-[[Inside the Native API:http://www.sysinternals.com/Information/NativeApi.html]] ([[Sysinternals]])~
Sysinternals の Native API 情報。最近 Windows XP で新たにサポートされた Native API が追加されています。
-[[MinGW:http://www.mingw.org/]]~
MinGW 内のパッケージの一つに w32api((Windows API パッケージ。確か GNU プロジェクトとしても配布されていたはず)) の中に PDS の Native API Header(ntapi.h) が用意されています。活用するならこの Header を利用するといいかも。

-[[Multiple WinXP kernel vulns can give user mode programs kernel mode privileges:http://www.securityfocus.com/archive/1/354392/2004-05-23/2004-05-29/1]] ([[SecurityFocus:http://www.securityfocus.com/]])~
www.itmedia.co.jp/enterprise/0402/20/epn06.html~
[[MSR>CPU/MSR]]でも紹介していますが、Native API の実装として ZwSystemDebugControl() を利用したセキュリティホールの紹介があります。確かに機能はかなり凄いのですが Microsoft 社としては Debug 権限を取得されてしまった時点でアウトだから仕様で問題なし、との見解らしい。
-[[Libsmbios Library:http://linux.dell.com/libsmbios/main/index.html]]~
Native API(ZwSystemDebugControl) の実装例。アレゲ。

-http://undocumented.ntinternals.net/~
Native API 集。Java VM を起動しようとするアレな page のようです((ネタがアレなだけにセキュリティには気をつけた方が、、、))。結構纏まった量の Native API があります。
-[[try...except がWinXP SP1 で動作が異なる:http://forums.belution.com/ja/vc/000/346/17s.shtml]] (http://www.belution.com/ )~
「ユーザーモードでの特権命令を使用可能にする」という NtSetInformationProcess という関数が紹介されていました。

*Windows NT/2000ネイティブAPIリファレンス [#i320253e]
#amazon(489471244X)
多分、Native API について専門にここまで扱った本は未だかつて無いし、今後も無いんじゃないかと思えるほどマニアック。著者の page は既に閉鎖してしまっています。

-[[Windows NT/2000ネイティブAPIリファレンス:http://www.pearsoned.co.jp/washo/win/wa_win49-j.html]] ([[ピアソン・エデュケーション:http://www.pearsoned.co.jp/washo/index.html]])~
サンプルコードはキット役立つはず。

#amazon(,clear)