ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² windows
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Auto PY to EXE
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π· pip
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ Auto PY to EXE.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ρ GitHub
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½Π°ΠΏΡΡΠΌΡΡ Ρ GitHub. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Auto PY to EXE Ρ GitHub Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ GitHub.
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Auto PY to EXE 2.9.0 ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Auto PY to EXE, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ GUI:
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Auto PY to EXE
ΠΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
Π¨Π°Π³ 1. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Python ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΄Π΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Python. ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ GUI, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠ΅Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ: Build a Sorting Algorithm Visualizer in Python
Π¨Π°Π³ 2. ΠΡΠ±ΠΎΡ Β«One DirectoryΒ» ΠΈΠ»ΠΈ Β«One FileΒ»
One directory ΠΈΠ»ΠΈ One file
Π¨Π°Π³ 3. ΠΡΠ±ΠΎΡ Β«Console BasedΒ» ΠΈΠ»ΠΈ Β«Window BasedΒ»
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΈΠΏ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ (Console Based) ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ (Window Based). ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Β«Window BasedΒ», ΡΠΎ ΡΡΠΎ ΡΠΊΡΠΎΠ΅Ρ Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Β«Console BasedΒ». ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ GUI ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄, ΡΠΎ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Window BasedΒ». Π― Π²ΡΠ±ΡΠ°Π» Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ GUI.
Console Based ΠΈΠ»ΠΈ Window Based
Π¨Π°Π³ 4. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΈΠ΄ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ.
ΠΠ°ΠΏΠΊΠ° Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΡ ΠΎΡΠΊΡΡΡΠΈΡ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ.
ΠΠΎΡΠΎΠ²ΠΎ! ΠΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Python ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ». ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Python.
Π Π΅ΡΡΡΡΡ
ΠΠ° ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ
Π‘Π΅ΡΠ²Π΅ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²! VDS Ρ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠΏΠ»Π°ΡΠΎΠΉ Π½Π° Π±Π°Π·Π΅ Π½ΠΎΠ²Π΅ΠΉΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD EPYC ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ NVMe Π΄ΠΈΡΠΊΠΎΠ² ΠΎΡ Intel Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΏΠ°ΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ²!
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ BAT ΡΠ°ΠΉΠ»ΠΎΠ²
Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ BAT ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡΠ΅ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Ρ Firefox ΠΈ ΠΏΡΠΎΠ±ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΉΠ», ΠΏΡΡΡ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΊΠ°Π·Π°Π½. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊ Π½Π΅ΠΉ ΠΏΡΡΡ:
ΠΠ»ΠΈΠ½Π½Ρe ΠΈΠΌΠ΅Π½Π° Π² bat-ΡΠ°ΠΉΠ»Π°Ρ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ. ΠΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΠΈΠΌΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅: Π² ΠΊΠΎΡΠΎΡΠΊΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠΌΠ΅Π½ΠΈ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°
. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΏΠΊΠΈ Program Files ΠΈ Sound Club Ρ ΠΌΠ΅Π½Ρ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°. Π‘ΠΈΡΡΠ°ΡΠΈΡ Ρ Program files Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π°Ρ. ΠΠ°Π»ΠΎ Ρ ΠΊΠΎΠ³ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡΡ Π΄Π²Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π΄ΠΈΡΠΊΠ΅. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Mozilla Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π£ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΏΠΎΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π΄Π»Ρ Π½ΠΈΡ Π±ΡΠ΄ΡΡ
ΠΡΠΎΠ±Π΅Π»Ρ ΠΈ ΠΊΠ°Π²ΡΡΠΊΠΈ Π² bat-ΡΠ°ΠΉΠ»Π°Ρ
ΠΠ°Π²ΡΡΠΊΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ Π½Π΅ Ρ ΡΠ΅ΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΡΡ. Π‘ΠΎΠ²Π΅ΡΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΡΠ°Π²ΠΊΡ ΠΏΠΎ Π½Π΅ΠΉ ( start /? ), ΡΠΎ Π² ΡΠΏΡΠ°Π²ΠΊΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΈΠ΄ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° ΠΈ ΠΎΠ½ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΠΊΠ°Π²ΡΡΠΊΠ°Ρ . ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π½ΠΎ Π΅Π³ΠΎ Π²ΡΡ ΠΆΠ΅ ΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡ), ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ½ΡΡΡΠΈ ΠΊΠ°Π²ΡΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΈΡΠ°ΡΡ. ΠΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ°ΠΊ:
Π’Π°ΠΊΠΆΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ Ρ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ Π²ΡΠ΅Ρ ΠΈΠΌΡΠ½ Ρ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ:
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ Π·Π°ΠΏΡΡΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Defraggler.exe. ΠΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rem Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ΅ BAT ΡΠ°ΠΉΠ»Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π§ΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΈΡΡΠ΅Π·Π°Π»ΠΎ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Π²ΡΡ ΠΎΠ΄ exit.
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· bat-ΡΠ°ΠΉΠ»Π°
ΠΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΡΠ΅Π»Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ BAT ΡΠ°ΠΉΠ» Π²Π΅Π·Π΄Π΅ ΠΈ Π²ΡΠ΅Π³Π΄Π°, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ:
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π² BAT ΡΠ°ΠΉΠ»Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² bat-ΡΠ°ΠΉΠ»Π°Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (ΠΊΠ»ΡΡΠ°ΠΌΠΈ)
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, Π° Π΄Π°Π²Π°ΡΡ Π΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠ²Π΅ΡΠ½ΡΡΠΎΠΉ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅. ΠΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΈΡ ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΈΠ½ΡΡΠ°Π»ΡΡΠΎΡΠ°, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ:
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· Π²Π°ΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠΈΡ ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎ ΡΠΈΡ ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ.
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ BAT ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΈΠΊΠ°Π·Π°Π² Π΅ΠΉ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅. Π― ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°ΠΉΡΠΎΠ². ΠΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π΅ΡΡ ΡΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
ΠΡΠΌΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΡ ΠΈ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡΡ .
ΠΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ: Π²ΡΡ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΉ Π² Π±Π°ΡΠ½ΠΈΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΈΡΠ΅ΡΡΡ Ρ Π½Π΅ΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠ°ΡΠΊΠ½ΡΠ»ΡΡ Π΅ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅Ρ BAT Π² EXE, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅: Advanced Bat To Exe Converter
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»? ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΠ. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅Ρ ΠΈΡ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Windows EXE.
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ EXE-ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΠ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ EXE. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²Ρ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π²ΠΎΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Π ΠΈΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (EXE)
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π²Ρ Π΄Π°Π΅ΡΠ΅ Π΅ΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² Π½Π΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΡ ΠΏΡΠΎΡΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΠΊΠ°Ρ . ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ»ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΡ Π²ΡΠ΅Π΄ Π·Π° Π²Π°Ρ ΡΡΠ΅Ρ.
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Windows Security ΠΈΠ»ΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ Π°Π½ΡΠΈΠ²ΠΈΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Malwarebytes. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ. Π₯ΠΎΡΡ Windows ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ UAC, Π΄Π²Π°ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π½Π΅ΡΡΠΈ Π²ΡΠ΅Π΄ Π²Π°ΡΠ΅ΠΌΡ ΠΠ.
ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (EXE) Π² Windows
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² Windows, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Windows Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠΎΡΠΌΠ°Ρ EXE-ΡΠ°ΠΉΠ»Π° ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΠΈΠ· ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Windows, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Π½Ρ Β«ΠΡΡΠΊΒ» Windows (Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ) ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΒ».
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² Windows
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π°Ρ ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ IExpress Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π² Windows, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΠΎΠ΅ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΎΡΡ. ΠΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. Inno Setup ΠΈΠ»ΠΈ, Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΠΌΠΎΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΠΈΡ ΡΡ EXE-ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 7-ΠΌΠΎΠ»Π½ΠΈΡ.
EXE-ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 7-Zip, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ Π°ΡΡ ΠΈΠ²Π° SFX. ΠΡΠΎΡ Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠΎΡΠΌΠ°ΡΠ΅ EXE Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π²ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
Π₯ΠΎΡΡ ΡΡΠΎ Π½Π΅ Π½Π°ΡΡΠΎΡΡΠΈΠΉ EXE-ΡΠ°ΠΉΠ», ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½, ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Β«Π½Π°ΡΡΠΎΡΡΠΈΠΉΒ» ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΏΡΡΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Mac ΠΈΠ»ΠΈ Linux
Π’ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Windows, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Linux ΠΈΠ»ΠΈ macOS. ΠΠ° ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ EXE.
Π Linux, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ, Π½ΠΎ Π΄Π»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ chmod ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π°Π³ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄Π° chmod + x file ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ file ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π macOS Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈΠ· App Store, ΠΈ ΠΎΠ½ΠΎ Π½Π΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π·Π½Π°Π΅Ρ ΠΈΠ»ΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄ΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠΎ Π² ΠΌΠ΅Π½Ρ Β«Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΒ»> Β«ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡΒ».
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Unix macOS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Terminal. ΠΡΠ»ΠΈ Π²Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod + x Π΄Π»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΌΡΠ»ΡΡΠΎΡ WINE Π΄Π»Ρ Linux ΠΈ macOS Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ EXE-ΡΠ°ΠΉΠ»ΠΎΠ² Windows Π½Π° ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ . Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Windows, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WINE Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° EXE-ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠΏΠ΅Ρ Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ WINE, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ WineHQ.
ΠΠ°ΠΏΡΡΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Windows 10
ΠΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ° Windows, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows 10 ΡΠ°ΠΉΠ»Ρ EXE Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ. ΠΠΎΠΊΠ° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠΎΠΌ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ Windows 10 Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ EXE ΠΎΠΏΠ°ΡΠ΅Π½, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡ Π²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Windows.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ EXE
Π‘Π°ΠΌΠΎΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΈΠ». ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π·Π°Π½ΡΡΡΡΡ ΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π²ΡΠ΅Π³Π΄Π° Ρ ΠΎΡΠ΅Π» β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠΎΠ±ΡΠ°ΡΡ Hello World, Π½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ ΠΏΡΠΎ ΠΏΠ°ΡΡΠΈΠ½Π³ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π° ΠΏΡΠΎ ΡΠ°ΠΊΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠ°ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²Π°Ρ ΡΠ±ΠΎΡΠΊΠ° exe ΡΠ°ΠΉΠ»Π°.
ΠΠ°ΡΠ°Π»ΠΎ
Π₯ΠΎΡΠΈΡΠ΅ ΡΠΏΠΎΠΉΠ»Π΅Ρ? ΠΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ 2048 Π±Π°ΠΉΡ.
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ exe ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ. Π‘Π°ΠΌΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΈ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ!
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΡΠ±ΠΎΠΉ HEX ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (Π»ΠΈΡΠ½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» HxD).
ΠΠ»Ρ ΡΡΠ°ΡΡΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄:
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ WinAPI. Π€ΡΠ½ΠΊΡΠΈΡ MessageBoxA Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ Π½Π°ΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, Π° ExitProcess ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ main Π½Π΅Ρ ΡΠΌΡΡΠ»Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅.
DOS Header
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ DOS Header, ΡΡΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ DOS ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π²Π»ΠΈΡΡΡ Π½Π° Π·Π°ΠΏΡΡΠΊ exe ΠΏΠΎΠ΄ Windows Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½.
ΠΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Ρ ΠΎΡΠΌΠ΅ΡΠΈΠ», ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ Π½ΡΠ»ΡΠΌΠΈ.
Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Π΅ e_magic ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅, ΡΡΠΎ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΈ e_lfanew β ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π½Π° ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΠ°ΠΉΠ»Π° (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 0x80 = 128 Π±Π°ΠΉΡ).
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΡΡΡΠΊΡΡΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° DOS Header Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π΅Π΅ Π² Π½Π°Ρ ΡΠ°ΠΉΠ».
Π‘Π½Π°ΡΠ°Π»Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π»Π΅Π²ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΡΠΎΠ³Π΄Π° Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΊΠΎΠ±ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠΊΠ°Π·Π°Π½ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ», Π° Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ (Offset) ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΠΌΡ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ 0x00000000, ΠΈ ΠΎΠ½ Π·Π°ΠΉΠΌΠ΅Ρ 64 Π±Π°ΠΉΡΠ° (0x40 Π² 16-ΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅), ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΡΠ°Π²Π»ΡΡΡ ΡΠΆΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ 0x00000040 ΠΈ Ρ.Π΄.
ΠΠΎΡΠΎΠ²ΠΎ, ΠΏΠ΅ΡΠ²ΡΠ΅ 64 Π±Π°ΠΉΡΠ° Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ 64, ΡΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ DOS Stub (ΠΠ°Π³Π»ΡΡΠΊΠ°). ΠΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ·-ΠΏΠΎΠ΄ DOS, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΠΎ Π² ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ΄ DOS ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ ΠΈ Π²ΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ Π½Π°Ρ Stub Π² ΡΠ°ΠΉΠ» ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅Π΅.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄, Π½ΠΎ ΡΠΆΠ΅ Π² Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ: ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³Π»ΡΡΠΊΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 1. Π§ΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ (ΠΠΎΠ΄ 0).
ΠΠΎΠ΄ Π·Π°Π³Π»ΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡ (ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ) Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π» gcc ΠΈ delphi, Π½ΠΎ ΠΎΠ±ΡΠΈΠΉ ΡΠΌΡΡΠ» ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ.
Π Π΅ΡΠ΅ Π·Π°Π±Π°Π²Π½ΠΎ, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π·Π°Π³Π»ΡΡΠΊΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ \x0D\x0D\x0A$. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ c++ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» \x0A Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ \x0D\x0A. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 3 Π±Π°ΠΉΡΠ°: 2 Π±Π°ΠΉΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠ°ΡΠ΅ΡΠΊΠΈ Carriage Return (0x0D) ΡΡΠΎ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ, ΠΈ 1 Π½Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ Line Feed (0x0A). Π Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ (std::ios::binary) ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Far Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ ImpEx:
NT Header
Π‘ΠΏΡΡΡΡ 128 (0x80) Π±Π°ΠΉΡ ΠΌΡ Π΄ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π΄ΠΎ NT Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (IMAGE_NT_HEADERS64), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΈ PE Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (IMAGE_OPTIONAL_HEADER64). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ IMAGE_OPTIONAL_HEADER64 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x64 ΠΈ x86.
Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅:
Signature β Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΡΠΊΡΡΡΡ PE Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ IMAGE_FILE_HEADER ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x86 ΠΈ x64.
Machine β Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΊΠΎΠ΄ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ x64
NumberOfSections β ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΉΠ»Π΅ (Π ΡΠ΅ΠΊΡΠΈΡΡ
ΡΡΡΡ Π½ΠΈΠΆΠ΅)
TimeDateStamp β ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°
SizeOfOptionalHeader β Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° IMAGE_OPTIONAL_HEADER64, Π²Π΅Π΄Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ IMAGE_OPTIONAL_HEADER32.
Characteristics β ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ (EXECUTABLE_IMAGE) ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Ρ 2 ΠΠ± RAM (LARGE_ADDRESS_AWARE), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π° (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°) Π² ΡΠ°ΠΉΠ» (RELOCS_STRIPPED | LINE_NUMS_STRIPPED | LOCAL_SYMS_STRIPPED).
IMAGE_DATA_DIRECTORY β ΠΌΠ°ΡΡΠΈΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ . Π ΡΠ΅ΠΎΡΠΈΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ, ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΠ² ΠΏΠ°ΡΡ Π±Π°ΠΉΡ, Π½ΠΎ Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ 16 ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ. Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, Π³Π΄Π΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. ΠΡΠΈΠΌΠ΅Ρ:
Export(0) β Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΡΠ°Π½ΠΈΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Ρ Π½Π°Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ DLL. ΠΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
Import(1) β ΠΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ DLL. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ VirtualAddress = 0x3000 ΠΈ Size = 0xB8. ΠΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΎΠΏΠΈΡΠ΅ΠΌ.
Resource(2) β ΠΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π’Π΅ΠΊΡΡ, Π€Π°ΠΉΠ»Ρ ΠΈ Ρ.Π΄.)
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΠΈΡ NT-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ» ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x80.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER64 ΠΈ IMAGE_DATA_DIRECTORY Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²:
ΠΠ°Π»Π΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ IMAGE_SECTION_HEADER
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½aΡ Π±ΡΠ΄Π΅Ρ 3 ΡΠ΅ΠΊΡΠΈΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Virtual Address (VA) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 1000, Π° Π½Π΅ Ρ Π½ΡΠ»Ρ Ρ Π½Π΅ Π·Π½Π°Ρ, Π½ΠΎ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π». Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ 1000 + 3 ΡΠ΅ΠΊΡΠΈΠΈ * 1000 (SectionAlignment) = 4000 ΡΡΠΎ ΠΌΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π² SizeOfImage. ΠΡΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
I β Initialized data, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
U β Uninitialized data, Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
C β Code, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄
E β Execute, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄
R β Read, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ
W β Write, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΠΈΡ
.text (.code) β Ρ
ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ), Π°ΡΡΠΈΠ±ΡΡΡ CE
.rdata (.rodata) β Ρ
ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ.ΠΏ., Π°ΡΡΠΈΠ±ΡΡΡ IR
.data β Ρ
ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΡΠΈΠ±ΡΡΡ IRW
.bss β Ρ
ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π°Π½Π½Π°Ρ ΡΠ΅ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ RAW ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ VA Size, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ΅ΡΡΠ° Π² ΡΠ°ΠΉΠ»Π΅. ΠΡΡΠΈΠ±ΡΡΡ URW
.idata β ΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π² ΡΠ΅Π±Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡΠΈΠ±ΡΡΡ IR
ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΠ΅ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΠΈ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π² ΡΠ°ΠΉΠ»Π΅, ΡΠ°ΠΊ ΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ ΠΌΠ΅Π½ΡΠ» ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π°Π»Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈΡ Π² Π½Π°Ρ ΡΠ°ΠΉΠ». Π’ΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 8 ΠΈ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΡΠ°ΠΉΠ»Π°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ΄Π΅Ρ 00000200 ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»Ρ SizeOfHeaders PE-ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΠ΅ΠΊΡΠΈΡ, Π° ΡΡΠΎ ΠΏΠ»ΡΡ 40 Π±Π°ΠΉΡ, ΡΠΎ Π½Π°ΡΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠ»ΠΎΠΆΠΈΠ»ΠΈΡΡ Π±Ρ Π² 512 (0x200) Π±Π°ΠΉΡ ΠΈ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ 512+40 = 552 Π±Π°ΠΉΡΠ° Π²ΡΡΠΎΠ²Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎ FileAlignment, ΡΠΎ Π΅ΡΡΡ 1024 (0x400) Π±Π°ΠΉΡΠ°. Π Π²ΡΠ΅ ΡΡΠΎ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΎΡ 0x228 (552) Π΄ΠΎ Π°Π΄ΡΠ΅ΡΠ° 0x400 Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΠΌ-ΡΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ, Π»ΡΡΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π½ΡΠ»ΡΠΌΠΈ.
ΠΠ·Π³Π»ΡΠ½Π΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±Π»ΠΎΠΊ ΡΠ΅ΠΊΡΠΈΠΉ Π² Far:
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² Π½Π°Ρ ΡΠ°ΠΉΠ» ΡΠ°ΠΌΠΈ ΡΠ΅ΠΊΡΠΈΠΈ, Π½ΠΎ ΡΡΡ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π½ΡΠ°Π½Ρ.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ SizeOfHeaders, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π½Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΉΠΌΡΡ Π²ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²ΠΌΠ΅ΡΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΌΠ΅ΡΡΠ°, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΡΡΡΠ΅ (Π½ΡΠ»Π΅Π²ΡΠ΅) Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠΆΠ΅ Π²ΡΠ΅ ΡΠ°ΡΡΡΠΈΡΠ°Π», ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ°Π·Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 3 ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠ²Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ 3 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 3 Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π΅ΡΠ΅ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ call.
ΠΠΎ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠΎ Π±ΡΠ»Π° Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡ main, Π° ΠΏΠΎΠ΄ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ.
Π Π²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 3 Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π΅ MessageBoxA, Π° printf ΡΠΎ Π±Π΅Π· ΡΡΠΈΡ ΡΡΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±Ρ ΠΎΡΠΈΠ±ΠΊΡ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ Π²ΡΠ·ΠΎΠ²Π°Ρ Π΄Π»Ρ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ MSDN, ΠΏΠ΅ΡΠ²ΡΠ΅ 4 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ RCX, RDX, R8, R9. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΠ»ΠΎΠΌ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ΅ΠΊ.
ΠΠΎ ΠΈΠ΄Π΅Π΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ 2 Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ Π½ΠΈΡ Π΄Π²Π° ΠΌΠ΅ΡΡΠ° Π² ΡΡΠ΅ΠΊΠ΅, ΡΡΠΎ Π±Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ³Π»Π° ΡΠΊΠΈΠ½ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π² ΡΡΠ΅ΠΊ. Π’Π°ΠΊ ΠΆΠ΅ ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π²Π΅ΡΠ½ΡΡ ΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
Π’Π°ΠΊ Π²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈ printf Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅ΠΉ Π²ΡΠ΅Π³ΠΎ 1 Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΎΠ½Π° Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ΅Ρ Π²ΡΠ΅ 4 ΠΌΠ΅ΡΡΠ° Π² ΡΡΠ΅ΠΊΠ΅, Ρ ΠΎΡΡ Π²ΡΠΎΠ΄Π΅ Π±Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ, ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅Π±Ρ ΡΡΡΠ°Π½Π½ΠΎ Π²Π΅Π»Π°, Π²ΡΠ΅Π³Π΄Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠΉΡΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 8 Π±Π°ΠΉΡ * 4 Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° = 32(0x20) Π±Π°ΠΉΡ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΎΡΡ Π±Ρ 1 Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π½Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ:
rcx = 0
rdx = Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ImageBase + Sections[«.rdata»].VirtualAddress + Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΠ΅ΠΊΡΠΈΠΈ, ΡΡΡΠΎΠΊΠ° ΡΠΈΡΠ°Π΅ΡΡΡ Π΄ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°
r8 = Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ
r9 = 64(0x40) MB_ICONINFORMATION, Π·Π½Π°ΡΠΎΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
Π Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ MessageBoxA, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π»Π΅Π·Π΅Ρ Π² ΠΊΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠΌΠ°Ρ ΠΎΠ² ΠΊΡΡΠ°, ΠΏΠΎΠ΄Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ Π²ΡΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Intel 64 and IA-32 Architectures Software Developerβs Manuals.
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, Π½ΠΎ ΡΡΠΎ Π·Π°Π½ΡΠ»ΠΎ Π±Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ (1 ΠΎΠΏΠΊΠΎΠ΄ + 8 Π°Π΄ΡΠ΅Ρ = 9 Π±Π°ΠΉΡ), Π° Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° call Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ 6 Π±Π°ΠΉΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΡΡΡ ΠΌΠ°Π³ΠΈΡ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅: rip + 0x203E, ΡΡΠΎ Π½ΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π½Π°ΡΠΈΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π― ΠΏΠΎΠ΄ΡΠΌΠΎΡΡΠ΅Π» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈ ΡΠ·Π½Π°Π» Π°Π΄ΡΠ΅ΡΠ° Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ MessageBoxA ΡΡΠΎ 0x3068, Π° Π΄Π»Ρ ExitProcess ΡΡΠΎ 0x3098.
ΠΠΎΡΠ° ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΌΠ°Π³ΠΈΡ Π² Π½Π°ΡΠΊΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠΊΠΎΠ΄ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΎΠ½ Π²ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ ΠΈ ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (RIP). ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ RIP Π²Π½ΡΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΡΠΎΡ Π°Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ / Π½Π°ΡΠ°Π»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ.
ΠΠ»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ call ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ call ΡΡΠΎ 002A Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠΎΡ Π°Π΄ΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Sections[«.text»].VirtualAddress, Ρ.Π΅. 0x1000. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, RIP Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ call Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 102A. ΠΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ MessageBoxA Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x3068. Π‘ΡΠΈΡΠ°Π΅ΠΌ 0x3068 β 0x102A = 0x203E. ΠΠ»Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π²ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ 0x1000 + 0x0037 = 0x1037, 0x3098 β 0x1037 = 0x2061.
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΈ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
Π₯ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 4 ΡΡΡΠΎΠΊΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²Π΅ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅. Π Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½ΡΠ»ΠΈ ΡΡΠΎ Π±Ρ Π½Π°Π±ΡΠ°ΡΡ FileAlignment. ΠΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π½ΡΠ»ΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ 0x000003F0, ΠΏΠΎΡΠ»Π΅ ΠΈΠ΄Π΅Ρ 0x00000400, Π½ΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ. ΠΡΠΎΠ³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΆΠ΅ 1024 Π±Π°ΠΉΡΠ°, Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π΅ΡΠΈΡ ΡΠΆΠ΅ ΡΠ΅Π»ΡΠΉ ΠΠΈΠ»ΠΎΠ±Π°ΠΉΡ! ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ.
ΠΡΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅ΠΊΡΠΈΡ. ΠΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΡΠ΄Π° Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΠ±ΠΈΠ² Π½ΡΠ»ΡΠΌΠΈ Π΄ΠΎ 512 Π±Π°ΠΉΡ.
ΠΡ Π²ΠΎΡ ΠΎΡΡΠ°Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ΅ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠΎ Π½Π°Ρ ΠΆΠ΄Π΅Ρ Π½ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° IMAGE_IMPORT_DESCRIPTOR
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ 2 ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ:
Π£ Π½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 2 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π° ΡΡΠΎ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½ΡΠ»ΡΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΌΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ:
ΠΠ°Π»Π΅Π΅ ΠΎΠΏΠΈΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ user32:
ΠΠΎΠ»Π΅ Name ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° 0x303C Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡΡ Π²ΡΡΠ΅, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x063C Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Β«user32.dll\0Β».
Β«00 00 4D 65 73 73 61 67 65 42 6F 78 41 00 00 00Β»
ΠΠ΅ΡΠ²ΡΠ΅ 2 Π±Π°ΠΉΡΠ° Π½Π°Ρ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΠΈ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ. Π Π²ΠΎΡ Π΄Π°Π»ΡΡΠ΅ ΠΈΠ΄Π΅Ρ ΡΡΡΠΎΠΊΠ° Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠ°ΡΡΡ Π½ΡΠ»Π΅ΠΌ. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π΅Ρ ΠΊΠ°ΠΊ «\0\0MessageBoxA\0».
ΠΡΠΈ ΡΡΠΎΠΌ IAT ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ΅ IAT ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π΅Π΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π°Π΄ΡΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ 0x3068 Π² ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0x0668 Π² ΡΠ°ΠΉΠ»Π΅. Π’Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ MessageBoxA Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ² call Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΡΡΠΎΡΠ΅ΠΊ ΠΏΠ°Π·Π»Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° kernel32. Π Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ Π΄ΠΎΠ±ΠΈΡΡ Π½ΡΠ»ΡΠΌΠΈ Π΄ΠΎ SectionAlignment.
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΎ Far ΡΠΌΠΎΠ³ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ:
ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΡΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΎΡΡ, Π·Π½Π°ΡΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΡΠ°ΠΉΠ» Π³ΠΎΡΠΎΠ² ΠΊ Π·Π°ΠΏΡΡΠΊΡ.
ΠΠ°ΡΠ°Π±Π°Π½Π½Π°Ρ Π΄ΡΠΎΠ±Ρβ¦
Π€ΠΈΠ½Π°Π»
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΡ, ΠΌΡ ΡΠΏΡΠ°Π²ΠΈΠ»ΠΈΡΡ!
Π€Π°ΠΉΠ» Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2 ΠΠ± = ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ 512 Π±Π°ΠΉΡ + 3 ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎ 512 Π±Π°ΠΉΡ.
Π§ΠΈΡΠ»ΠΎ 512(0x200) Π½ΠΈ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ FileAlignment, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»ΠΈ ΠΊΠ²Π΅ΡΡ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ² Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ MessageBox. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ², ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°ΡΡ Π² Π½Π΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ (0x3068 β RIP).
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΊΠ°Π½Π½ΠΎΠΉ, Π΅ΠΉ Π±Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· 3 ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ: ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π’Π°Π±Π»ΠΈΡΠ° ΠΈΠΌΠΏΠΎΡΡΠ°.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΎΠ±ΡΠ°Π» ΡΠ²ΠΎΠΉ exe Π·Π½Π°ΡΠΈΡ ΠΌΠΎΠΉ ΡΡΡΠ΄ Π±ΡΠ» Π½Π΅ Π½Π°ΠΏΡΠ°ΡΠ΅Π½.
ΠΡΠΌΠ°Ρ Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ELF ΡΠ°ΠΉΠ» ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠ°Ρ ΡΡΠ°ΡΡΡ?)