/Разборы задач
31 октября 2026
Райтап на задачу «Бесконечность»
Получаем Infinity в JavaScript без букв и цифр с помощью JSFuck.23
13

Misc
Задача «Brute_force.pdf»
Тут понадобятся гугл, код, файл и терпение.
Нам дали PDF-файл, запароленный на вход, и подсказку: пароль — это дата выхода популярной песни, записанная в формате dd.mm.YYYY.
Первое, что приходит в голову — какая вообще песня считается «популярной» настолько, чтобы её знал каждый? И тут, конечно, вспоминается главный мем-трек интернета — та самая песня, на которую все рано или поздно «попадались» по ссылке. Ну вы поняли, о чём я, дыа? ;)
Гуглим дату её выхода — и находим точный день, месяц и год релиза. Переводим в формат dd.mm.YYYY, как и просили в условии.
Дальше остаётся самое простое — подставить получившуюся дату в качестве пароля к файлу. Но давайте представим, что мы не знаем, что это за дата, ведь кто его знает, может, подставили совсем другую песню?
Можно открыть PDF вручную в любом просмотрщике и ввести пароль напрямую, а можно (раз уж задача называется Brute_force) оформить это как маленький скрипт перебора по списку кандидатов — файл будет прикреплён чуть ниже:
import pikepdf
with open("song_release_dates.txt", "r", encoding="utf-8") as f:
candidates = [line.strip() for line in f if line.strip()]
for pw in candidates:
try:
with pikepdf.open("Brute_force.pdf", password=pw) as pdf:
print(pw)
break
except pikepdf.PasswordError:
continueПосле выполнения программы мы увидим в выводе пароль, откроем наконец-таки этот PDF и увидим там это:
Все молодцы! Флаг получен, ввели и получили заветные очки (не солнцезащитные).
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you…