Micro-Controller copy
Yes, this is possible in a number of ways.  What you need is a disassembler that supports the target microcontroller you have.

The simplest way to do this for a PIC is to use MPLAB.  I use the older version (v8.90) for this but there is most probably a way to do it in MPLABX also.  Load the software then choose File-&gt;Import and open your .hex file.  After this you can use View-&gt;Program Memory to see the assembler.



This might not bear much representation to the original code if it was written in a compiled language (for example C), but it will be an accurate representation of the exact instructions the microcontroller would run.

There are other free pieces of software that can do this.  You can also find paid offerings like IDA Pro, which become very useful when starting to disassemble bigger portions of code.