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