I have a PIC18F4550 from an old device and I need to see the code. I tried reading it using my ICD3 programmer, but the chip seems to have its code protected. How can I get the code anyway?
In the paper Heart of Darkness - exploring the uncharted backwaters of HID iCLASS TM security is a technique described (section III.C) that might work,but it does require a working device which might not be at hand in your situation.
In short they use a TTL-232 cable in synchronous bit bang mode to emulate the PIC programmer. They then override the boot block by a special dumper firmware. Why it seems to work:
Microchip PIC microcontrollers internal memory is an EEPROM which means that data are stored and erase by pages (which hold a predefined amount of data). The "key" point is that , whenever memory is copy protected, individual blocks can be erased resetting the copy protection bits only for these blocks.