Use file and the disassembly to determine this is a 32-bit ELF movfuscated binary
Run strace and ltrace to see multiple SIGILL and SIGSEGV's thrown and multiple calls to strlen()
Realize movfuscated code uses signals to call libary functions
Use GDB to pass the signals to the binary rather than have GDB handle them first (handle <signal> pass)
Run the binary in GDB and realize the flag slowly prints out on the stack as you continue the program after each signal is thrown(using peda's context menu or whatever other method you would like)
Grab the flag from the stack when the program has printed the end curly brace, "}".
Original writeup (https://github.com/mrchisel14/CTFs/tree/master/2018/TAMUCTF2018/movit).