ls -la and file commands tell us there are three files:
An executable fd
A C file: fd.c
An inaccessible file: flag
cat fd.c : observing the source code tells us that the program accepts one cmd arg which, after being subtracted by 0x1234, is supposed to be the file descriptor of a file whose first 32 bytes are read, which upon matching a particular string (also specified in the source) will reveal the contents of flag.