Какая строчка в памяти по адресу 0x61ebce?
Solution
Нужно найти строку по адресу. Изи:

Окак. Значит нужно будет чутка пореверсить.
int32_t main(int32_t argc, char** argv, char** envp)
int32_t var_c = 0
int64_t rax
rax.b = 0
obfuscated_prepare_memory()
void* rax_1
rax_1.b = 0
int32_t var_10 = printf(format: "Hope you got what you wanted!\n")
int32_t rax_2
rax_2.b = 0
int32_t var_14 = printf(format: "Checking... ")
int32_t rax_4
if (strcmp("dont_give_flag", "I_WANT_THE_FLAG!") == 0)
rax_4.b = 0
int32_t var_18_1 = printf(format: "okok, giving you the flag..\n")
int32_t rax_5
rax_5.b = 0
obfuscated_give_flag()
else
rax_4.b = 0
printf(format: "looks like you don't want flag\n")
return 0
Кажется, что стоит запустить бинарь и дойти хотя бы до строки void* rax_1. Так как только из этой функции есть обращения к этой памяти:

Это не означает, что больше нигде таких обращений не будет, ибо дизассемблер мог не все разобрать. Тем не менее, искать перекресные ссылки - дело полезное. Запущу бинарь в отладчике и поставлю брейк поинт на 0x4005c4.


Проверю память с помощью команд:
x/i, x/x, x/s, x/a- отображение по адресуинструкции/hex/строка/адрес;x/b, x/h, x/w, x/g- размер вывода8/16/32/64;

А вот и флаг:
westgate1697