Skip to content

Instantly share code, notes, and snippets.

@olesgedz
Last active December 26, 2021 15:10
Show Gist options
  • Save olesgedz/7c1ab762605462cdbd31acf52d0b0851 to your computer and use it in GitHub Desktop.
Save olesgedz/7c1ab762605462cdbd31acf52d0b0851 to your computer and use it in GitHub Desktop.
- Huge topic & and it depends on what you want to do, but as an a general resource I've heard good things about https://beginners.re/ (older but free mirror: https://mirrors.ocf.berkeley.edu/parrot/misc/openbooks/programming/ReverseEngineeringForBeginners.en.pdf)
- In emulation, RE-ing is often needed for system BIOSes, operating systems, drivers, OS modules and games to aid in understanding of what the hardware does & emulate it properly when the documentation is insufficient or incomplete (ie. always).
- These videos from LiveOverflow & stacksmashing are a fun introduction to some fundamental concepts: https://www.youtube.com/playlist?list=PLniOzp3l9V82onKsktyyKlIenAAUj45Mk
- For static analysis, the industry standard tool is Ghidra https://ghidra-sre.org/. There are loaders/extensions for pretty much all consoles/processors, search for them.
- Sidenote: An alternative and also industry-standard tool (more on the enterprise side) is IDA Pro/HexRays https://www.hex-rays.com/ida-pro. I don't personally recommend it, Ghidra is better in a lot of things. Also if you want to get it legally, it costs multiple thousands of dollars vs. Ghidra being free & open source.
[10:19 PM]
- For dynamic analysis, the standard tool that's cross-platform and supports many architectures is gdb.
- Many emulators implement "gdbstub"s that allow them to use a gdb client to debug guest code just like you would debug something running on the host. Meaning, you would be able to place breakpoints, step, etc via any gdb interface (ie. gdbgui), on GameBoy code or whatever you're emulating.
- IDA Pro has debugging support that works with gdbstubs.
- https://gef.readthedocs.io/
- https://www.gdbgui.com/
- Other projects choose to make their own integrated debuggers with (ie. https://github.com/ocornut/imgui). This is perhaps more work, but more flexible (and many people don't like gdb).
- For x86, the industry standard tool is https://github.com/x64dbg/x64dbg.
- Frida: https://frida.re/
- http://reddit.com/r/ReverseEngineering and http://reddit.com/r/REGames
https://github.com/ThomasRinsma/dromaius
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment