PIC Burnout: Dumping Protected OTP Memory In Microchip PIC MCUs

Normally you can’t read out the One Time Programming (OTP) memory in Microchip’s PIC MCUs that have code protection enabled, but an exploit has been found that gets around the copy protection in a range of PIC12, PIC14 and PIC16 MCUs.

This exploit is called PIC Burnout, and was developed by [Prehistoricman], with the cautious note that although this process is non-invasive, it does damage the memory contents. This means that you likely will only get one shot at dumping the OTP data before the memory is ‘burned out’.

The copy protection normally returns scrambled OTP data, with an example of PIC Burnout provided for the PIC16LC63A. After entering programming mode by setting the ICSP CLK pin high, excessively high programming voltage and duration is used repeatedly while checking that an area that normally reads as zero now reads back proper data. After this the OTP should be read out repeatedly to ensure that the scrambling has been circumvented.

The trick appears to be that while there’s over-voltage and similar protections on much of the Flash, this approach can still be used to affect the entire flash bit column. Suffice it to say that this method isn’t very kind to the Flash memory cells and can take hours to get a good dump. Even after this you need to know the exact scrambling method used, which is fortunately often documented by Microchip datasheets.

Thanks to [DjBiohazard] for the tip.

8 thoughts on “PIC Burnout: Dumping Protected OTP Memory In Microchip PIC MCUs

    1. Indeed, that is the other well-known hack. A few friends from the Xbox scene tried that already on the PIC16LC63A and had no luck, having issues with device reliability after decap and trouble erasing the protection bits.

  1. It’s funny to me because PIC and AVR OTP use Flash registers as logical fuses, and there’s test modes for dumping the program flash regardless of OTP status.

    For PIC the test mode entry is triggered by half-clock pulses, and AVR uses half-voltage pulses similarly. The exact pattern varies by mask family, of course. If you build a basic programmer that let’s you do those, you can brute force the sequence easily enough.

      1. Pic12 and 14 were routinely hacked since at least 2003 by spiking supply voltage during fuse read/write operation, thats when I was cloning pic based phone unlock dongles…untill they caught a wind of it and switched to AVR(atmega16 anyone?) and etching case open then zapping exposed die was the only way.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.