Rating: 5.0
# config-me - BSidesSF 2020 CTF (reverse, 472p, 4 solved)
## Introduction
config-me is a reversing task. It is also in the `101` category, hinting that it
should be quite easy.
This task contains two files: `config-me` an ELF binary written in Rust, and
`config-me.conf` that contains a name, a password, a comment, a conference title
and the flag.
The password and flag fields are encrypted:
```
password: E$0d6b731d24127ad34e76a78133c91e59f13ab12eaa8dc0ad99e10c71
flag: E$af7ac775b3716f6d6ae96fdb6080ef41f4918e0b9f2837b82105b5da39
```
## Reverse engineering
The best way to reverse a Rust binary is: you don't.
## Dynamic analysis
The `config-me` binary reads the configuration from `config-me.conf`. It then
displays `Welcome back, Ron [...]`, with Ron being the content of the `name`
field from the configuration.
The binary can be used to add/delete a key and save/load a configuration file. A
key can be encrypted, and look like the encrypted field seen above.
By changing the configuration file and setting the `name` field to an encrypted
value, it will be decrypted and printed. Setting the `name` field to the
encrypted flag will reveal the flag:
```
Welcome back, CTF{my_rust_is_rusty}! Your config file currently has 5 entries. What would you like to do?
```
**Flag**: `CTF{my_rust_is_rusty}`