운영 체제가 절대로 필요하지 않습니다. DLL 종류의 관리되는 어셈블리는 Assembly.Load() 및 친구와 함께로드됩니다. 지터가 코드를 컴파일 할 때 암묵적으로 필요합니다. 또는 코드에서 Assembly.Load 종류 중 하나를 사용할 때 명시 적으로.
운영 체제가 관련된 유일한 시간은 EXE를 시작할 때입니다. 최신 Windows 버전 (XP 이상) 은 관리 EXE를 인식합니다. 정확한 메커니즘은 문서화되어 있지 않습니다. mscoree.dll은 중요한 플레이어이며, 로더의 스텁 역할을하며 실제로 CLR이로드되는 도우미 DLL입니다. Windows는 자동으로로드합니다. 아마도 실행 파일 내에 CLR 헤더가 표시됩니다.
이전 Windows 버전 (Windows 98 및 2000)에 대한 인식이 없지만 EXE에는 5 바이트의 관리되지 않는 코드가 포함되어 있습니다. mscoree.dll 안의 _CorExeMain() 함수로 점프하는 것만 가능합니다. 그런 다음 CLR을로드하는 정상적인 작업을 수행합니다. 운영 체제는 32 비트 EXE가 64 비트 프로세스로 실행할 수있는 특이한 기능으로 인해 이후 버전에 참여해야했습니다. 64 비트 프로세스를 만들기 위해 실행 파일을 수정하는 데 관련된 hackorama는 매우 정교합니다.