Rating:
Greetings from OTA,
So it was a short binary given, on analyzing we found it was using aes_cbc_256
```c
int setup_crypter(__int64 a1)
{
__int64 v1; // ST08_8@1
__int64 v2; // rax@1
__int64 v3; // rax@1
__int64 v4; // rax@1
void *v5; // ST18_8@1
__int64 v6; // rax@1
v1 = a1;
v2 = HMAC_CTX_new();
a1 + 160 = v2;
v3 = EVP_sha256();
HMAC_Init_ex(*(_QWORD *)(v1 + 160), v1 + 64, 32LL, v3, 0LL);
v4 = EVP_CIPHER_CTX_new();
a1 + 168 = v4;
v5 = calloc(0x10, 0x1);
v6 = EVP_aes_256_cbc(16LL, 1LL); ######### USING AES 256CBC
return EVP_EncryptInit_ex(*(_QWORD *)(v1 + 168), v6, 0LL, v1 + 32, v5); ###### KEY i.e v5 IS NEVER INITIALIZED
}
```
So lets try all 32 bit combination
```python
from Crypto.Cipher import AES
maybeKey = open('core', 'r').read().strip()
flag = open("flag.txt.enc", "rb").read()
for i in range(0,len(maybeKey)-32):
key = maybeKey[i:i+32]
aes = AES.new(key, AES.MODE_CBC, IV="\xff"*16)
text = aes.decrypt(flag)
if "CTF" in text:
print (key, text)
break
```
Reveals the flag `CTF{core_dump_your_secrets}`