There is nothing in the file, this is very odd! No main function, no _entry function, no variables. STRANGE
The only possible explanation of this behavior is, that this binary has been packed with some packer to strip out all the information. We can check which packer has been used using a tool called DetectItEasy
As we can see in the disassembly, at 0x0000000000401184, some value is being moved into the $rdx register and is marked with a comment of flag as well. Lets put a breakpoint at *main+39 so that we can inspect $rdx register and get the value of the flag.
gef➤ b *main+39
Breakpoint 1 at 0x40118b
...
gef➤ x/s $rdx
0x496628: "UPX...? sounds like a delivery service :)" # FLAG
We got our flag. However, we used few tools like GDB and DetectItEasy to understand the binary better, these could have been easily avoided and simple strings could have been used to solve this challenge.
$stringsflag|grepUPXUPX!$Info:ThisfileispackedwiththeUPXexecutablepackerhttp://upx.sf.net $$Id: UPX 3.08 Copyright (C) 1996-2011 the UPX Team. All Rights Reserved. $UPX!UPX!...Unpackthebinary...$stringflag-unpacked-upx|grepUPXUPX...?soundslikeadeliveryservice:)
So, there were multiple ways to solve this binary, however, for the strings method you’d have to go through the strings output manually and search for interesting strings to understand that it has been packed using UPX and then again go through the strings output of the unpacked binary to get the value of the flag.