requires a library, but can be disassembled without them using static analysis:
int main {
void var_140;
char const* const var_30;
std::cout var_140;
if(var_140 == "verysecret69"){
var_30 = "Access denied!";
}
else {
var_30 = "Access granted!";
}
return 0;
} |
==> |
Enter username: ghhghhggh
Enter password: BE34A10D |
==> |
F4N_N3R0{W3lc0m3_t0_my_pr0f1l3_7h1s_1s_my_w@ll3t_k3y}
Good puzzle :) |
==> |
Is the flag in hexadecimal form? In the string it is not read.
hex result: 06 0A 0A 19 1E 09 1D 0A 58 23 0B 04 56 2A 46 1A 89 CE A0 9B 54 0C 1A 5E 0A 2A 09 6D 7B 21 21 7D |
==> |
It is quite easily located with the help of Cheat Engine, the password lies next to the introduced value in memory, if the password were removed from the memory, it would be more difficult |
==> |