8

I want to learn to reverse engineer hardware/firmware as well as software (eventually, i want to focus on hardware/firmware now). I have some experience programming STM32 microcontrollers as well as decent understanding of C. I understand verilog and have made some simple stuff in FPGA and have done PCB board design before as well.

I started reading "Reverse Engineering for Beginners" but it seems like a lot of examples with no hands-on projects to work with. I learn a lot more by doing so if there was a book that teaches you reverse engineering, assembly/disassembly, and other topics with a project in mind i'd much prefer it. I'd like to learn ARM and x86 but more of a focus on ARM.

As for tools i have a Bus Pirate, Logic Analyzer, and basic soldering equipment. Any recommendations on tools i should get and projects i can do?

3
  • 1
    I think it's a wrong approach. Pick your own project and figure out how to RE it, using whatever information you can find.
    – Igor Skochinsky
    Commented Oct 26, 2017 at 18:14
  • @IgorSkochinsky I can't argue with your experience, but i just don't feel like i know enough to even get started. you know? Commented Oct 27, 2017 at 0:24
  • Well, you can start by posting specific questions right here on this site so we can offer advice specific to your target. A "book with project" will teach you only about that project and won't necessarily describe the things you actually need.
    – Igor Skochinsky
    Commented Oct 27, 2017 at 7:49

2 Answers 2

4

You are right, most of the RE books out there are more generic and consists of dozens of different examples and not project oriented. Moreover, they're mostly focused on software reverse engineering.

From these, and as a reference, it is worth to mention:

In the field of hardware reverse engineering, however, it is much harder to find a proper book, not to say one which is project oriented. But there is one book which overcomes the other and seems to fit best for your needs – Hacking the Xbox: An Introduction to Reverse Engineering by Andrew Huang. The book is available for free since March 2013.

To quote from the book's description:

This hands-on guide to hacking begins with step-by-step tutorials on hardware modifications that teach basic hacking techniques as well as essential reverse engineering skills. The book progresses into a discussion of the Xbox security mechanisms and other advanced hacking topics, with an emphasis on educating the readers on the important subjects of computer security and reverse engineering. Hacking the Xbox includes numerous practical guides, such as where to get hacking gear, soldering techniques, debugging tips and an Xbox hardware reference guide.

You can visit the book's official website for more information.

Other books which you may find helpful are listed below:

It is important for me to note that although the fact that most of these books is available online pirately, I encourage you to buy the books you are interested in and support their authors.


On a general note, I'd suggest you to start reverse engineering from routers and old game consoles. Good references could be found in /dev/ttys0. Choose a product which is cheap and you can buy many pieces from it so you won't be afraid of destroying it with your tests. The Super Nintendo Entertainment System (SNES) is an example for a console which is documented in details by other reverse engineers, check this for example. As for tools, most of the resources above contains recommendations for tools that would help you in each project.

1
  • 4 of the links in this answer refer to material already mentioned in the answer I gave (practical reverse engineering, hacking the xbox, devttys0). In addition, "reverse engineering for beginners" is discussed in the question. You should focus on making original contributions
    – julian
    Commented Oct 26, 2017 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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