many say you should look into decompilers such as ghidra, which i think is good call, but they usually work only to some extent, because good obfuscation turns their readings into garbage. so after the basics look into CPU emulation(Unicorn e.g.) and runtime debugging(i think you can use gdb, because you are on Linux, but generally speaking, runtime debugging on Linux is not that interesting, because software has little ways to stop you, while on Windows there is a swarm of anti-debuggung techniques and anti-antidebugging bypasses, also anti-vm and anti-antivm), may as well do it in parallel.