ΠΠ΄ΠΈΠ½ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅ΡΠΎ UIUCTF 2025 ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΈ ΠΊΠ°ΠΊ Π΅ ΡΡΠΏΡΠ» Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ Π·Π°Π΄Π°ΡΠ°, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΈΠΌΠ°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΄Π°.
Π£ΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΡΡ ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π·Π°ΡΠ²ΠΊΠ° ΠΊΡΠΌ Python ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π½ΠΎΠ² Python ΡΠΊΡΠΈΠΏΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΈΠΌΠ΅, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ, ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°ΠΉΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ "\n" ΠΈ "\r", ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΡΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "python3 ΠΈΠΌΠ΅.py". ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ°, ΡΡΠ°ΡΡΠ½ΠΈΠΊΡΡ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ Π½ΠΈΠ· ΠΎΡ ΡΠ°ΠΉΠ»Π° "\/home\/ctfuser\/flag". Π‘ΠΊΡΠΈΠΏΡΡΡ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠ΄: comment = input("> ").replace("\n", "").replace("\r", "") code = f"""print("hello world!") # Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ. ΠΡΠΎ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½: # {comment} print("Thanks for playing!")"""
ΠΠΌΠ΅ΡΡΠΎ "{comment}" ΡΠ΅ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Ρ Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°, ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΊΠΎΠ΄: print("hello world!") # Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ. ΠΡΠΎ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½: # ΠΠ°Π½Π½ΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° Π² ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅ΡΠΎ print("Thanks for playing!")
ΠΠ°Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Π½ΠΎ Π²Π΄ΡΡ Π½ΠΎΠ²Π΅Π½ΠΎ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΠΏΠ°ΡΡΠ΅ΡΠ° CPython, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Ρ Π½ΡΠ»Π΅Π² ΠΊΠΎΠ΄ ΠΊΠ°ΡΠΎ ΠΊΡΠ°ΠΉ Π½Π° ΡΠ΅Π΄Π° (ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ°). ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π±Π΅ΡΠ΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ Π² ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡΡΠ° Π½Π° CPython 3.12.0 ΠΈ 3.11.4. Π ΠΏΡΠΈΠ»Π°Π³Π°Π½ΠΈΡ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ Π° ΡΠ°ΠΌΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ "\n" ΠΈ "\r", Π½ΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° CPython ΡΡΠ°ΡΡΠ½ΠΈΠΊΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΌΠ²ΠΎΠ»Π° "\0" ΠΊΠ°ΡΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π». ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΎΠ·ΠΈ ΡΡΠΈΠΊ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° CPython, ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π² ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΡΡΠ°Π½Π°Ρ ΠΎΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΡΡ.
Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΠ»ΠΈΡΡ ΡΠ΅ Ρ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π½Π΅ ΡΡΡΡΠ΅ΡΠ΅ Π½ΠΎΠ²ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠ°ΡΡΠ΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ· Π½Π° ΡΠ°ΡΡΠΈ, Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² 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
