ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡ UIUCTF 2025, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°Π», ΠΊΠ°ΠΊ Π΅ΠΌΡ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΡΡΠ΅Π±ΡΡΡΠ΅Π΅ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΠΌΠ΅Ρ Π»ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠ΄Π΅.
Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Python-ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Π» Π½ΠΎΠ²ΡΠΉ Python-ΡΠΊΡΠΈΠΏΡ cΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ» ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π²ΡΡΠ΅Π·Π°Π² ΡΠΈΠΌΠ²ΠΎΠ»Ρ Β«\nΒ» ΠΈ Β«\rΒ», ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π» ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«python3 ΠΈΠΌΡ.pyΒ». ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΠΈΠ·Π²Π»Π΅ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Β«/home/ctfuser/flagΒ». Π‘ΠΊΡΠΈΠΏΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ: comment = input(Β«> Β«).replace(Β«\nΒ», «»).replace(Β«\rΒ», «») code = f»»»print(Β«hello world!Β») # This is a comment. Hereβs another: # {comment} print(Β«Thanks for playing!Β»)»»»
ΠΠΌΠ΅ΡΡΠΎ Β«{comment}Β» ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄: print(Β«hello world!Β») # This is a comment. Hereβs another: # ΠΠ°Π½Π½ΡΠ΅, ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡ print(Β«Thanks for playing!Β»)
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠ°ΡΡΠ΅ΡΠ΅ CPython, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π» ΡΠΈΠΌΠ²ΠΎΠ» Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ (ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² Π²ΡΠΏΡΡΠΊΠ°Ρ CPython 3.12.0 ΠΈ 3.11.4. Π ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π²ΡΡΠ΅Π·Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Β«\nΒ» ΠΈ Β«\rΒ», Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π‘Python ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Β«\0Β» ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎΡ ΡΡΡΠΊ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π» ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΠΆΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ CPython c ΡΠ°ΡΡΡΡΠΎΠΌ, ΡΡΠΎ Π² ΠΏΠ°ΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΡΠΌΠΎΠ³ΡΡ ΠΈΡ Π²ΡΡΠ²ΠΈΡΡ.
Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΠ²ΡΠΈΠΉΡΡ Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π½Π΅ ΡΡΠ°Π» ΠΈΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠ°ΡΡΠ΅ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠ°Π·Π±ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ°cΡΠΈ, Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Python ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΡΠΈΠΏΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Β«.pyΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π°ΠΉΡΠΊΠΎΠ΄, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΠΉ Π² ΡΠ°ΠΉΠ»Π°Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Β«.pycΒ», ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½. Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΡΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΠΌΠΎΠ³ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ³ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ MIME-ΡΠΈΠΏΠ°.
ΠΠ°Π΄Π°ΡΡ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΅ΡΠΈΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Python Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΠΊΠΈ 2.6 ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ZIP-Π°ΡΡ ΠΈΠ²ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΊΡΡΠ΅ΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Π½Π°Π»ΠΈΡΠΈΠ΅ zip-Π°ΡΡ ΠΈΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ, Π° Π½Π΅ ΠΏΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°, Ρ.Π΅. Π² Β«ΡΠ°ΠΉΠ».pyΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ zip-Π°ΡΡ ΠΈΠ² ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«python ΡΠ°ΠΉΠ».pyΒ» ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½, ΠΊΠ°ΠΊ ΡΠΆΠ°ΡΡΠΉ Python-ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ZIP-Π°ΡΡ ΠΈΠ²Ρ Π² Python ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡΡΡΡ Π½Π΅ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π°, Π° ΠΏΠΎ ΡΠ΅ΠΊΡΠΈΠΈ EOCD (End of Central Directory Record) Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² Π°ΡΡ ΠΈΠ²Π΅ ΡΠ°ΠΉΠ»Π° Β«__main__.pyΒ», ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΡΠΌΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π°ΡΡ ΠΈΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«python Π°ΡΡ ΠΈΠ²Β».
ΠΠΎΠ½ΠΊΡΡΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ»Π° ΡΠ΅ΡΠ΅Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ZIP-Π°ΡΡ ΠΈΠ²Π° ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»Π° Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π²ΡΠ·ΠΎΠ²Π° βprint(Β«Thanks for playing!Β»)β, Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² EOCD-ΡΠ΅ΠΊΡΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅.

ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
