Rating: 5.0

TUCTF 2018: Shoop
=================

## Description

Difficulty: easy

Black Hole Sun, won't you come

and put sunshine in my bag

I'm useless, but not for long

so whatcha whatcha whatcha want?

`nc 18.220.56.147 12345`

## Solution

The challenge binary asks for some input, then prints a message.

```
$ ./shoop
Gimme that good stuff: asdfasdf
Survey Says! ��a_n\a_n\����������
Close... probably
```

With some static analysis we can see that the program first mangles the input in
a way that we'd like not to reverse and then checks it against a fixed string.
If we can find the correct input we will get the flag.

![Check](img1.png)

This seems a good use case for [angr](https://angr.io/). We can search for a
state were stdout contains `That's right!`, then print the contents of stdin.

```
$ python solve.py
b'everybodyrockyourbody'
```

Great! Now let's get ourselves a flag!

```
$ echo everybodyrockyourbody | nc 18.220.56.147 12345
Gimme that good stuff: Survey Says! jmt_j]tm`q`t_j]mpjtf^
That's right!
TUCTF{5w337_dr34m5_4r3_m4d3_0f_7h353}
```

Original writeup (https://github.com/ctf-epfl/writeups/tree/master/tuctf18/shoop).