Hatena::Groupwindows

CX's Memo(Windows関連)

[Latest] [Edit] [Config] [Help] | [Group] [Home] [PV:796196]
2006 | 04 |
2009 | 05 | 06 | 09 |
2010 | 02 |

2009-05-17

[] MSVCRT.DLL  MSVCRT.DLL - CX's Memo(Windows関連)  を含むブックマーク はてなブックマーク -  MSVCRT.DLL - CX's Memo(Windows関連)

Windows 7 になってシステム DLL の構成(依存関係)に変更が入っているようです。

<Windows Vista の DLL 依存関係>
[C:\Windows\System32\MSVCRT.DLL]
├[C:\Windows\system32\KERNEL32.DLL]
│├[C:\Windows\system32\NTDLL.DLL]
│└[C:\Windows\system32\NTDLL.DLL]
└[C:\Windows\system32\NTDLL.DLL]
<Windows 7 RC1 の DLL 依存関係>
[C:\windows\system32\MSVCRT.DLL]
├[C:\windows\system32\KERNELBASE.DLL]
│└[C:\windows\system32\NTDLL.DLL]
├[C:\windows\system32\NTDLL.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-CONSOLE-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-DATETIME-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-DEBUG-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-FIBERS-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-FILE-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-HANDLE-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-HEAP-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-INTERLOCKED-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-LOCALIZATION-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-LIBRARYLOADER-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-MEMORY-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-MISC-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-NAMEDPIPE-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-PROFILE-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-STRING-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-SYNCH-L1-1-0.DLL]
├[C:\windows\system32\API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL]
└[C:\windows\system32\API-MS-WIN-CORE-UTIL-L1-1-0.DLL]

と、思って、MS サイトを検索してみたら以下の情報が出てきました。

Windows アプリケーション品質 CookBook: アプリケーションの互換性、信頼性、パフォーマンスを高めるための開発者ガイド

http://msdn.microsoft.com/ja-jp/windows/dd459214.aspx

■ 17. 新しいバイナリ: リファクタリング

http://msdn.microsoft.com/ja-jp/windows/dd459214.aspx#17

  • 説明
    • 内部的なエンジニアリングの効率を高め、将来的な作業基盤をしっかりと整えておくために、新しい低レベルのバイナリへの機能の再配置を行いました。
    • このリファクタリングによって、将来の Windows 環境の総合的な "表面積" (ディスクやメモリ要件、サービス、攻撃にさらされる領域など) をより小さく抑えることが可能となります。
  • 具体的な影響や現象
    • 新しい低レベルのバイナリへ機能面の再配置を行いました。たとえば、kernel32.dll および advapi32.dll の機能は、kernelbase.dll に集約されます。
    • 今後、既存のバイナリは、呼び出しを直接処理するのではなく、低レベルの新しいバイナリに転送することになります。
    • 転送は静的に行う (エクスポート テーブルにリダイレクトが含まれるようにする) ことも、実行時に行う (Dll に新しいバイナリを呼び出すスタブ ルーチンを持たせる) こともできます。
  • 既存の機能に対する影響の解決策
    • 影響があるのは、ウイルス対策アプリケーションなど、メモリ内の kernel32.dll または advapi32.dll のエクスポート テーブルを参照する際に、何らかの推測を行うコードだけです。実装の深い部分ではなく、公開されている API を使用するようにしてください。
    • これは、リファクタリングによって、API の詳細な実装を覆い隠すように再配置されている1 つの例です。

どうやら、Kernel32.dll や Advapi32.dll が細分化されてるようです。