Ghidra is an open sourced decompiler. A compiler takes source code like C, and converts it into machine code. A decompiler tries to do the opposite. It takes machine code and generates code that resembles it's source code. However, since the process of compiling source code isn't like a 1 to 1 function, the code it gives us isn't always 100% correct. Even with that it can be a great help, and really reduce the amount of time we spend reversing challenges (btw reversing is just the process of figuring out what something does).
Installation is pretty simple. Install Java, then you just run ghidra (since ghidra was written in java). Google can help with this.
Since we are primarily using Ghidra's GUI, I feel that the best way to learn how to use Ghidra would be to either try it yourself, or watch some videos (versus just reading a lot of text). Feel free to look into this yourself, and / or try some of these videos/links that helpful people on the internet made. You don't need to understand :
https://www.youtube.com/watch?v=fTGTnrgjuGA https://www.youtube.com/watch?v=OJlKtRgC68U https://threatvector.cylance.com/en_us/home/an-introduction-to-code-analysis-with-ghidra.html https://ghidra-sre.org/InstallationGuide.html
Also after this, I would recommend having a linux VM (I typically use Ubuntu for ctfing).