diff --git a/tasks/jojo1/readme.md b/tasks/jojo1/readme.md index 1b0bc07..e8acbc1 100644 --- a/tasks/jojo1/readme.md +++ b/tasks/jojo1/readme.md @@ -2,7 +2,7 @@ Для начала, посмотрим что происходит на странице. Для этого, зайдем в исходный код. На странице выполняется скрипт, который сначала открывает WebSocket. Чтобы узнать что это, загуглим. Это соединение с сервером, которое обменивается текстовыми данными. Все что есть в скрипте помимо этого является оберткой над этим соединением, по типу добавления сообщения в страницу. Так что дальше исследовать страницу мало пользы, можно исследовать соединение. Погуглив, можно узнать что общение по вебсокетам доступно в python3, что мы и будем использовать. Программа дальше отрывает соединение, отправляет 'init' и печатает все ответы от сервера. -``` +```python import websocket as ws c=ws.create_connection('wss://jojo1.ctfmay.sch9.ru/ws/') c.send('b') @@ -27,7 +27,7 @@ while(1): 277, 42, 130, 514, 919, 926 Можно заметить, что номер первого глагола изменяется на одинаковое число каждый раз, возвращаясь в 0 если увеличивается до 999, т.е. "ходит по кругу из чисел от 1 до 999" (), то же верно и для остальных номеров. Можно ещё несколько раз позапускать соединение чтобы убедиться что это всегда так и что номер (?????) глагола - всегда 514. Теперь, с помощью этого замечания попробуем угадать одну фразу. Кроме того, попробуем автоматически генерировать ответ, т.к. в дальнейшем это придется сделать 1000 раз. -``` +```python import websocket as ws #подключаем библиотеку a=open('glags.txt','r').read().split('\n')[:-1] #Загружаем файл, записываем в массив @@ -80,7 +80,7 @@ while(1): print(c.recv()) #Выводим остаток ответов от сервера. ``` Видим, что на этот раз вывод другой и ХП снялись уже не у ДжоДжо, поэтому продолжаем отгадывать фразы таким же образом. Начальный код остается таким же, но после выбора нужных глаголов код будет: -``` +```python for i in range(1000): #Повторяем столько раз, сколько ХП у противника c.send(f'Я хочу { words[0] } чтобы \ #Отправляем сгенерированную фразу { words[1] }, а потом { words[2] } и, будучи \