How can someone with little programming knowledge except for some Ruby on Rails/Ruby begin on a path of Reverse Engineering as a hobbyist to help the exploitation process of modern-day gaming consoles like Xbox Ones and PS4s?

I realize there is no simple "do this, then that" spoon-fed process of learning an extremely diverse subject matter like reversing but there are such vast amounts of tutorials that I have no idea which ones really pertain to my interest of specifically game console exploitation! I really want to help contribute to the long-term process of finding these vulnerabilities and get unsigned code running on these systems

  • I'm aware of "Hacking the Xbox" by Bunnie, however I've heard it's too out of date for use now ever since Microsoft revised the original Xbox after the release of the book, isn't it?
    – hworth
    Dec 21 '14 at 1:30
  • While the exact technicalities are now out-of-date, the general console reverse engineering approach in the book is still apt. Dec 21 '14 at 17:22
  • 2
    There are so many things to learn - assembler language, CPU architecture, memory layout, apis, file formats - that you won't stick with one book anyways. Once you have all the basics, switching to a different hardware will be your least problem. Dec 21 '14 at 19:15
  • I went ahead and purchased a copy of "Hacking the Xbox"; after this book what will be some needed follow-up reads?
    – hworth
    Dec 21 '14 at 19:53
  • 1
    @0xC0000022L: This question's comment thread is probably not the best place for us to get into a deep discussion on this, but.... If you see my answer on the other question, I not only provided a link (to Amazon no less, which is likely to be valid for quite some time), but I also gave the full name of the book, which can be referenced indefinitely even if the link breaks. That said, thank you for your feedback, and feel free to down-vote my original answer if you feel strongly about it. Dec 21 '14 at 22:36

Some things you will inevitably have to know at some degree to be able to reverse engineer Game Consoles:

  • Learn a lower level language such as C or C++. Most, if not all, Console games, modern and old, use these two languages for the bulk of the game (AKA, the Engine). This is important for my next point, which is:

  • Learn about the architecture of game software. Internally, games are not very different from one another. There are common data structures and algorithms that are needed by most games, and these needs reflect in the hardware. Learning the tools that engineers used to create these structures (C/C++) and knowing the structures and algorithms themselves, will help a lot when you have to make assumptions and guesses during the hacking process.

  • You'll obviously have to get familiar with hexadecimal dumps and assembly languages to be able to make sense of reversed Console code and ROMs.

  • Write a console game, preferably using an unofficial SDK. This is something that can also greatly improve your knowledge of the hardware and platform. Find out about the "home brew" community for your favorite Console and attempt to write a simple game using the available tools. You will have to solve a lot of hardware-specific problems and do a lot of guessing, since documentation is frequently rare. You'll gain valuable knowledge in the process.

  • Contribute to an emulator project. This is also a great way of acquiring knowledge about the hardware. The best possible way, I'd argue, since you will be trying to mimic the hardware with a piece of software.

  • 1
    Excellent answer! Extremely thorough and exactly what I was looking for.
    – hworth
    Dec 21 '14 at 23:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.