---
# System prepended metadata

title: Handycar writeup by @bigger777

---

# Handycar writeup by @bigger777

При скачивании файла получаем архив. При распаковке получаем два файла. В одном сишный код, в другом какой-то список команд.

Немного покурив код, понимаем, что идет подключение на сервер с ip 194.135.94.122 на порт 1778.

Компилим код `gcc main.c -o main` и запускаем `./main`.
При подключении вводим рандомный логин и пароль. Далее можно ввести цифру от 1 до 3. В зависимости от цифры отправляется код на брейнфаке.

Онлайн компиллятор брейнфака в помощь (https://fatiherikli.github.io/brainfuck-visualizer/).

Результат трех команд:
![](https://i.imgur.com/s9tqXkj.png)

Видим, что в первой ячейке ASCI код буквы "G", а во второй код цифры "1". Окей...

Смотрим файл с апи (в текстовом редакторе он корявый, поэтому Рома скинул пример в нормальном виде https://hackmd.io/@rerand0m/BJdL3OtnH).

*Примечание Ромы: Это MarkDown, его можно открывать в специальных редакторах, я не думал, что с этим могут быть проблемы.*

Видимо, нам нужен флаг. Поэтому пишим такой брейнфак, который в ячейки записывает ASCI код букв FLAG:
```brainfuck
>>++++++++++[<+++++++>-]>
++++++++++[<+++++++>-]<
++++++>>++++++++++[<++++++>-]
<+++++>>++++++++++[<+++++++>-]<+<<<
```

Сервер посылает нас нах и просит авторизоваться.

В апи сказано как это сделать. Нужно заполнить ячейки так:


| 0 | ASCI код "A" | ASCI код "U"| Код любого символа, например "А" (типа логин) | *пустая ячейка* | Код любого символа, например "P" (типа пароль) |
|-|-|-|-|-|-|



Брейнфак: 
```
++++++++++[<++++++>-]<+++++>>++++++++++[<++++++++>-]<+++++>>++++++++++[<++++++>-]<+++++>>>++++++++++[<++++++++>-]>
```

В сишном коде изменяем первую и вторую команду на наши брейнфаки, перекомпилируем и запускаем.
Сначала регаем пользователя, переподключаемся и заходим за него, далее отправляем команду с брейнфаком FLAG.
Получаем флаг.