llseek(3, 0, SEEK_CUR) = 6
close(3) = 0
close(1) = 0
llseek(0, 0, SEEK_CUR) = 296569
_exit(0)ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² Solaris ΠΊΠΎΠΌΠ°Π½Π΄Π° cat Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. Π Π°Π·Π»ΠΈΡΠΈΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Solaris ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π°Π΄ΡΠ΅ΡΠΎΠ² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ write. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ (ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ) Π²ΡΡΠ²ΠΈΠ» ΡΠΈΠΊΠ» Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ memorymap/write, ΠΏΡΠΈΡΠ΅ΠΌ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ 256 ΠΠ±.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ (Ρ ΠΎΡΡ Ρ ΡΡΠΈΠΌ ΠΈ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³Π»Π°Π²). Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΠ»Ρ ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ /tmp, ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²ΡΠ΅ΠΌ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Ρ. Π΄.
ΠΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ, Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° β ΡΠ΅ΠΌΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°. ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π΄Π°ΠΆΠ΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π»Π΅ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΎ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ). ΠΡΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ, ΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ ΠΎΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΡΠ½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ (ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ) β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ β Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ C. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΡΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΈΠΌΠ΅Π½ Π±ΡΠ»Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΡΠΎ Π·Π°ΡΠ°ΡΡΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π°, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠ»ΠΎΡ ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡ ΠΈ Π±ΡΠΊΠ².
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
Π‘ΡΠ΅Π΄ΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΄Π»Ρ Windows Ρ ΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ Ρ IDA Pro ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ DataRescue (ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 4.1). IDA Pro ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Java.
Π ΠΈΡ. 4.1. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ IDA ProΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° IDA Pro Π΄Π»Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ pbrush.exe (Paintbrush). IDA Pro Π½Π°ΡΠ΅Π» ΡΠ΅ΠΊΡΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ pbrush.exe. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Windows ΠΈΠ»ΠΈ UNIX), ΡΠΎ ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΡΠΈ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡΡ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΄Π΅Π»Π°Π² Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΈΠΌΠ΅Π½ pbrush.exe Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΠΈΠΌΠ΅Π½Π°.
ΠΡΠ΅Π½ΠΎΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ IDA Pro, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Ρ www.datarescue.com/idabase/ida.htm. SoftICE ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Numega β Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ www.compuware.com/products/numega/drivercentral/.
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ C (ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π²ΡΠ²ΠΎΠ΄ΡΡΠ°Ρ ΡΡΡΠΎΠΊΡ Β«Hello WorldΒ»). ΠΠ»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ GNU (GDB). ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½ΠΈΠΆΠ΅:#include <stdio.h>
int main ()
{
printf (βHello World\nβ);
return (0);
}ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ»Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π° Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (Π±ΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ βg):
[ [email protected]]$ gcc -g hello.c -o hello
[ [email protected]]$ ./hello
Hello WorldΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ GDB ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:
[ [email protected]]$ gdb hello
GNU gdb 19991004
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public
License, and you are welcome to change it and/or
distribute copies of it under certain conditions.
Type βshow copyingβ to see the conditions.
There is absolutely no warranty for GDB. Type βshow
warrantyβ for details.
This GDB was configured as βi386-redhat-linuxβ...
(gdb) break mainΠΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΡΠΎΡΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΡΠ½ΠΊΡΠΈΡ main. ΠΡΠΈ Π΅Π΅ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π±ΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ Π²ΡΠ΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ run.
Breakpoint 1 at 0x80483d3: file hello.c, line 5. (gdb) run
ΠΠΎΠΌΠ°Π½Π΄Π° run Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°.
Starting program: /home/ryan/hello
Breakpoint 1, main () at hello.c:5
5 printf (βHello World\nβ);
(gdb) disassembleΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΡΠ°Π»Π° ΡΠ΅ΡΡΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π±ΡΠ»Π° Π²ΡΠ΄Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° disassemble, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Dump of assembler code for function main:
0x80483d0 <main>: push %ebp
0x80483d1 <main+1>: mov %esp,%ebp
0x80483d3 <main+3>: push $0x8048440
0x80483d8 <main+8>: call 0x8048308 <printf>
0x80483dd <main+13>: add $0x4,%esp
0x80483e0 <main+16>: xor %eax,%eax
0x80483e2 <main+18>: jmp 0x80483e4 <main+20>
0x80483e4 <main+20>: leave
0x80483e5 <main+21>: ret
End of assembler dump.ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β«hello worldΒ», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ x86 Linux. ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ β Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΡΡΠΈΠ½Π³ΠΎΠ² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
(gdb) s
printf (format=0x8048440 βHello World\nβ) at printf.c:30
printf.c: No such file or directory.ΠΠΎΡΠ»Π΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ s (Β«stepΒ») ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ printf. GDB ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ printf ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ printf.
(gdb) s
31 in printf.c
(gdb) s
Hello World
35 in printf.c
(gdb) c
Continuing.ΠΠ°Π»Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ printf ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ c (Β«continueΒ») ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°.
Program exited normally. (gdb)
Π ΡΠΈΡΠ»ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²Ρ ΠΎΠ΄ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ nm ΠΈ objdump ΠΏΠ°ΠΊΠ΅ΡΠ° GNU. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° objdump ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΠ½Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Nm Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎ ΠΈ objdump, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
...ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ Π»ΠΎΠ²ΡΡΠΊΠΈ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ Π·Π½Π°Π½ΠΈΠΉ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠ΅Π΄ΡΡΠ² Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎ ΠΎΠ½ΠΈ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π½Π΅ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½Ρ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π²ΠΈΡΡΡΠΎΠ², ΡΠ΅ΡΠ²Π΅ΠΉ, Π’ΡΠΎΡΠ½ΡΠΊΠΈΡ ΠΊΠΎΠ½Π΅ΠΉ) ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ±ΡΡΠ½ΠΎ Π°Π²ΡΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΎΠΊ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠ², Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΡΡΡ RST Π΄Π»Ρ Linux Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°, Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎΡ ΠΆΠ΅ Π²ΠΈΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ELF (Executable and Linkable Format β ΡΠΎΡΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ) ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΈΡΡΡΠ° (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π²ΠΈΡΡΡΠ° Π² Π½Π΅ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅). Π§Π°ΡΡΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΈΡΡΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ, ΡΡΠΎ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΎΡ ΡΠΊΡΠΏΠ΅ΡΡΠΈΠ·Ρ. Π§Π΅ΡΠ²ΠΈ Code Red ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΊΠ°ΠΌΠΈ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΌΠ°ΡΠΊΠΈΡΡΡΡΡ ΠΏΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΡΠΌΠ°Ρ ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠ» Π½ΠΈ ΠΏΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΡΠ°ΠΉΠ»Π°.
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π½ΠΈΡ . ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ°ΠΉΠ»Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π»ΡΡ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΡΡΠ½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ.