ΠΠΎΠ³Π΄Π° PspUserThreadStartup Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ KiTbreadStartup, ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΄ΡΠ°, Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ APC ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ LdrInitialize-Thunk. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΊΡΡΠΈ, ΡΠ°Π±Π»ΠΈΡΡ NLS, ΠΌΠ°ΡΡΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ° (thread-local storage, TLS) ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ DLL ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Ρ ΡΠ»Π°Π³ΠΎΠΌ DLL_PROCESS_ATTACH.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡ APC ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π° Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ APC Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ΅ΠΊ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ APC.
ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈΠ·Π²ΠΎΠ΄ΠΈΠ²ΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows, β ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«DLL hellΒ». ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΡΠΎΡ Π°Π΄, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ DLL, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ΅Π΄Ρ Microsoft Visual Basic ΠΈΠ»ΠΈ MFC ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΡΡ Π·Π°ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ DLL ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Windows 2000 Π±ΡΠ»Π° ΠΎΡΡΠ°ΡΡΠΈ ΡΠ΅ΡΠ΅Π½Π°, Π³Π΄Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ DLL ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π»Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Windows File Protection, Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ°Π»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΈΡ DLL. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ DLL Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΠΉΠ» Application.exe.local (Π³Π΄Π΅ Application β ΠΈΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ); ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ DLL-ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ DLL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ DLL, Π½ΠΎ Π±ΠΎΠ»ΡΠ½ΠΎ Π±ΡΠ΅Ρ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ DLL, ΡΠ°Π΄ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ DLL ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π»ΡΠ±ΡΠ΅ DLL, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° KnownDLLs (ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠ΅ΡΠΈΡΡΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ) ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠΌΠΈ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΠΎ ΡΠ°ΠΊΠΎΠΌΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Microsoft Π²Π²Π΅Π»Π° Π² Windows XP ΠΎΠ±ΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ (shared assemblies). Π‘Π±ΠΎΡΠΊΠ° (assembly) ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π³ΡΡΠΏΠΏΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ DLL ΠΈ XML-ΡΠ°ΠΉΠ»Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΈ Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠ±ΠΎΡΠΊΡ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΉ XML-ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ. ΠΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΉΠ» Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠΎ ΠΈ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Β«.manifestΒ» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ application.exe.ma-nifest), Π»ΠΈΠ±ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΡΡΡΡ. ΠΠ°Π½ΠΈΡΠ΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ±ΠΎΡΠΎΠΊ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΠ±ΠΎΡΠΎΠΊ: Π·Π°ΠΊΡΡΡΡΠ΅ (private) ΠΈ ΠΎΠ±ΡΠΈΠ΅ (shared). ΠΠ±ΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ; ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ \Windows\Winsxs, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠ΅ β Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΡΠ°ΠΉΠ» ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (.cat), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ . ΠΠ±ΡΠΈΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠΉ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ DLL, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΉ DLL, Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π΅.
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΉΠ»Ρ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΠΈ, Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ, ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅. manifest. ΠΠ°Π½ΠΈΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ \Windows\Winsxs\Manifests, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ β Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ \Windows\Winsxs Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΡΡΠΎ ΠΈ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ², Π½ΠΎ Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. manifest.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΈ β 6-Ρ Π²Π΅ΡΡΠΈΡ DLL ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Windows, comctl32.dll, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΠΈΠ½ΠΊΠΎΠΉ Windows XP. Ee ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ \Windows\Winsxs\Manifest\x86_Microsoft.Windows.CommonControls_6595b64144ccfldf_6.0.0.0_x-ww_1382d70a.manifest. C Π½ΠΈΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΡΠ°ΠΉΠ» ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ. cat) ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² Winsxs, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ comctl32.dll.
Comctl32.dll Π²Π΅ΡΡΠΈΠΈ 6 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ΅ΠΌΠ°ΠΌΠΈ Windows XP ΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΠΌ, ΠΌΠΎΠ³ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ DLL, ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΅Π΅ ΠΎΠ±ΡΡΡ ΡΠ±ΠΎΡΠΊΡ. ΠΠ΅ΡΡΠΈΡ Comctl32.dll, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π² \Win-dows\System32, β ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π΅ΡΡΠΈΠΈ 5.x, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠ΅ΠΌΡ. ΠΠ°Π³ΡΡΠΆΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΡΠ΅Ρ Π΅Π³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΈ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ Π΅ΡΡΡ, Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ DLL-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ. DLL, Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ±ΠΎΡΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ, Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π² \Windows\System32, Π° Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°Ρ .
Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ΅ΠΊΡ Π΄Π°Π΅Ρ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Windows XP, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ User State Migration Wizard (\Windows\System32\Usmt\Migwiz.exe) Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.
1. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΌΡ Windows XP Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
2. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π² Notepad ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ 6-ΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
3. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ Migwiz.exe.manifest Π² Migwiz.exe.manifest.bak.
4. ΠΠ½ΠΎΠ²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±Π΅Π· ΡΠ΅ΠΌ.
5. ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°.
Π Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠΈΡ ΡΠ±ΠΎΡΠΎΠΊ. ΠΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΡΡΠ°Π²ΠΈΡ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΡΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ, ΠΏΠΎΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ±ΠΎΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΈΠ·ΡΡΠΈΠ² Π°Π½Π°ΡΠΎΠΌΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π’Π°ΠΌ, Π³Π΄Π΅ ΡΠ²Π½ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅, ΡΡΠΈΡΠ°ΠΉΡΠ΅, ΡΡΠΎ Π²Π΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π² ΡΠ°Π²Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΡΠ°ΠΊ ΠΈ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΄ΡΠ° (ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² Π³Π»Π°Π²Π΅ 3).
Ha ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (ETHREAD). Π‘ΡΡΡΠΊΡΡΡΠ° ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 6β7. ΠΠ»ΠΎΠΊ ETHREAD ΠΈ Π²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΡΡΡΠ»Π°Π΅ΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΠΊΡΠΎΠΌΠ΅ Π±Π»ΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° (thread environment block, TEB) β ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows (Csrss) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Windows-ΠΏΡΠΎΡΠ΅ΡΡΠ΅. Π§Π°ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΄ΡΠ° (Win32k.sys), ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π²ΡΠ·ΡΠ²Π°Π²ΡΠ΅Π³ΠΎ USER- ΠΈΠ»ΠΈ GDI-ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΡΡΠΊΡΡΡΡ W32THREAD, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊ ETHREAD.
ΠΠΎΠ»Ρ Π±Π»ΠΎΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΈΡ. 6β7, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅ΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ β ΡΡΠΎ Π±Π»ΠΎΠΊ ΠΏΠΎΡΠΎΠΊΠ° ΡΠ΄ΡΠ° (KTHREAD). ΠΠ° Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ β Π²Π»Π°Π΄Π΅Π»Π΅Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ), Π·Π°ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΡΠΈΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΠΊΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΎΠ»ΠΈΡΠ΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ (ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄ΡΡΠ³ΠΈΠΌ), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ LPC ΠΈ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Π½Π° Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. B ΡΠ°Π±Π»ΠΈΡΠ΅ 6β8 Π΄Π°Π½Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, Π³Π΄Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π±Π»ΠΎΠΊΠ° ETHREAD, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ dt ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΡΠ΄ΡΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΡΠΈΡΠΌΠΎΡΡΠΈΠΌΡΡ ΠΊ Π΄Π²ΡΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΊΠ°, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌ Π²ΡΡΠ΅, β ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ KTHREAD ΠΈ TEB. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½ΡΠΆΠ½ΡΡ ΡΠ΄ΡΡ Windows Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. Π‘Ρ Π΅ΠΌΠ° Π±Π»ΠΎΠΊΠ° KTHREAD ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 6β8.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π±Π»ΠΎΠΊΠ° KTHREAD ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 6β9.
Π’Π°Π±Π»ΠΈΡΠ° 6β9. ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π±Π»ΠΎΠΊΠ° KTHREAD
ΠΠΠ‘ΠΠΠ ΠΠΠΠΠ’: ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΡΡΡΠΊΡΡΡ ETHREAD ΠΈ KTHREAD
Π‘ΡΡΡΠΊΡΡΡΡ ETHREAD ΠΈ KTHREAD ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ dt ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΡΠ΄ΡΠ°. B ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠΎΡΠΌΠ°Ρ ETHREAD:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° KTHREAD ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ΠΠΠ‘ΠΠΠ ΠΠΠΠΠ’: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ !thread ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΡΠ΄ΡΠ°
ΠΠΎΠΌΠ°Π½Π΄Π° !thread ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΡΠ΄ΡΠ° Π²ΡΠ΄Π°Π΅Ρ Π΄Π°ΠΌΠΏ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠ»Π°Π΄ΡΠΈΠΊ ΡΠ΄ΡΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠ΄ Π²Π°ΠΆΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ: Π°Π΄ΡΠ΅ΡΠ° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ, Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°Ρ , Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΅ΠΊΠ°, ΡΠΏΠΈΡΠΎΠΊ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠΎΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ !process (ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°), Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ !thread (ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ± ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅). ΠΠΈΠΆΠ΅ Π΄Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΡΠΎΠΊΠ΅ Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π΅ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ.