Extract Microcontroller Code

Extract Microcontroller code is a very important step for reverse engineering microcontroller. As we all know, most of microcontrollers have embedded code in the flash or eeprom area. In order to recover the lost file or clone the obsolete electronic product, microcontroller code extraction could always be a necessary step. But microcontroller manufacturers will commit their best to prevent the code extraction from their microcontrollers.

The most commonly used way to avoid microcontroller code extraction is encrypt their code. However, microcontroller should also emphasis on the secret key management and storage. If the secret key is programmable or able to modify optional, which is quite similar to situation compare with the code stored in the EEPROM of microcontroller. Store those plain information inside the programmable memorizer could be a great threat to the microcontroller security against code extraction.

Semi-invasive microcontroller code extraction and faulty injection microcontroller code extraction, which cause danger to hardware security on the microcontroller chip, so manufacturer need to research and develop some methods to stop extract microcontroller code. We can use Self-timed dual-rail circuit design technology, then the logic sequence “1” or “0” won’t be used as high or low electrical level on the single line, but “HL” or “LH” on a pair of line. The composited signals “HH” can generate the alarm when extract microcontroller code, which will finally lead to processor reset. Circuit can be designed into a system which won’t have failure even if single transistor failure. This technology can increase the microcontroller code extraction difficulty when use power consumption analysis. Of course, attacker need to balance the security level and spending on the protection technology when extract microcontroller code.

In the old days when 8031 series microcontroller being applied, designer cann’t help but expand ROM or RAM, at that time, address line and data line have been used for crossing technology which cause the swicthing of double digitals or more digitals line which require to use them simutaneouly when layout printed circuit board and write a programme to prevent microcontroller code extraction.