Learning reverse engineering can be challenging, but with the right tools and resources, it becomes more manageable. Here are some top tools recommended for beginners based on Redditor experiences:
Ghidra: A free and open-source software reverse engineering (SRE) framework developed by the NSA. It supports multiple platforms and architectures. "Get ghidra. Go to github and find a project on the platform you want to target like windows/linux/osx. Build the project and load the bin into ghidra and work on understanding and documenting the bin."
IDA Pro: A powerful commercial disassembler and debugger. While it's not free, many professionals swear by its capabilities. "IDA’s debugger feels very comfortable and I can follow programs there."
x64dbg: A lightweight, open-source debugger for Windows. It's a good alternative to IDA Pro for those who prefer a free option. "x64dbg and similar tools overwhelm me and feel painful to use."
WinDbg: A powerful debugger for Windows, often used in conjunction with other tools. "I've spent some time in WinDbg or IDA but that is not a core skill and I would like to strengthen that a bit to go work towards fuzzing and vulnerability research."
LLDB: The LLVM debugger, which is cross-platform and supports multiple architectures. "Learn how to use a debugger to step through your C programs."
HxD: A free hex editor for Windows that is simple and easy to use. "A hex editor, I typically use HxD."
Cheat Engine: Useful for memory scanning and modifying game values, but also applicable to general reverse engineering tasks. "I like to use cheat engine."
Pwn.college: A free, comprehensive cybersecurity education platform with a strong focus on reverse engineering. "Pwn.college is free, fun and challenging."
Guided Hacking: Offers various courses and tutorials, particularly useful for game reverse engineering. "This forum a good starting point: guidedhacking.com"
0xInfection: Provides a basic tutorial on reverse engineering. "Here is a tutorial, it's pretty basic, but should get you an idea of how it works."
"Practical Reverse Engineering": A highly recommended book for learning the basics and beyond. "I’d really recommend ‘Practical Reverse Engineering’ book."
"IDA Pro Book": An in-depth guide on using IDA Pro, useful for advanced learners. "Take a look at this book https://www.amazon.com/IDA-Pro-Book-Unofficial-Disassembler/dp/1593272898"
Crackmes.one: A website with a collection of simple programs designed to be cracked. "Do crackmes, follow tutorials, read stuff even if you dont understand it yet."
Hack The Box: Offers various challenges, including reverse engineering, to help you practice. "hackthebox Reversing challenges (and similar) might be a path to start with easy and work your way up."
Learn Assembly: Understanding assembly language is crucial for reverse engineering. "Learn assembly then watch videos on app development in reverse and do that."
Practice Regularly: Consistent practice is key. Start with simple tasks and gradually move to more complex ones. "Write a series of programs to get comfortable..."
Use Online Resources: Utilize platforms like GitHub, YouTube, and forums to find tutorials, examples, and communities. "Use the internet brother. If you have the capacity to post a question to Reddit you have the power to look it up and read about it."
These resources and tools should help you get started and progress in your reverse engineering journey. Good luck!