Reverse Engineering
From Wiki
Contents |
Simple Reverse Engineering
One of the greatest things about working with small microcontrollers is that they let you replace or reuse existing electronic components in new and interesting ways. But, to be able to interface with an existing component, you'll need to understand how it works. Generally, you won't have any documentation, and thats when the skills of Reverse Engineering come into play.
Reverse Engineering is the task of figuring out how something works inside, when you don't have any documentation about it.
Reverse Engineering Techniques
I like to think of there as being 2 general classes of reverse engineering:
- Power on
- Power off
In Power On Reverse Engineering, the part that you're interested in using is connected to a working system. You want to use that part or parts in a new and novel way. So, with the "Power On", you can poke and probe at the parts to see how they're working in their current environment. Once you've figured it out, you can then remove the parts and use them as you like. Click on Power On Reverse Engineering for a simple example.
In Power Off Reverse Engineering, you have some raw parts sitting on your workbench, and you need to figure out how they work. You may have just unsoldered them from a broken device, or you may have gotten them at an electronics surplus store. Either way, you don't know anything about the electrical connections, so you don't have much to go on. This is a bit more difficult than Power On Reverse Engineering, but for many devices, its fairly straightforward, especially if you're careful not to overload and destroy the device you're probing. Click on Power Off Reverse Engineering for a simple example.
Reverse Engineering Dos and Don'ts
- DON'T reverse engineer if you don't have to! Scour the web for any possible document about the item you're looking for. Save everything you find on your harddrive, because in all likelyhood, you'll never find that one special PDF ever again!
- DO be careful! Devices that are powered on with their cases removed may contain high voltage electrical signals that could injure or kill you! Be VERY careful!
- DON'T destroy the device you're trying to reverse engineer! Know the general power parameters of the device. For example, do you think its 12V or 5V? Do you think it will "smoke" if you apply power to the wrong pins in the wrong way, or if you apply too much power in the "right" way.
- DON'T get too frustrated. Many devices are virtually impossible to reverse engineer! Imagine trying to figure out how a CPU or DRAM chips work!
- DO try to find specifications for similar parts from the same manufacturer. Many times you'll be able to find chip specifications for a newer or "bigger" version of the part you're trying to reverse engineer. These are valuable documents for your task, because they can tell you things like what the power ratings are, where ground and power generally are. Many times, newer chips are pin compatible with older chips, or contain a "Tech Note" about how to migrate from the old chip to the new one. Many times, this is all you'll need.
- DON'T be too ambitious. Is it really reasonable that you're going to be able to figure out how it works? What is the interface? How many pins/wires? How much time do you have?
- DO use the right equipment! For example, an Oscilliscope can make many Reverse Engineering tasks possible. A simple voltmeter will get you only a little way.
- DON'T risk destroying your expensive equipment! If you want to probe something with your 'scope, but you don't know what the voltage & amperage are, then use your multimeter first! Better yet, use something disposable like an LED. Start with the cheapest stuff, and work your way up. Its not worth destroying your sampling digital oscilliscope to try to figure out how a $3 part works.
