If the program code is not locked/ protected then you can read it back and program it into another identical chip.
You can also read the hex code into the disassembler function of mplab or other similar programs - however assuming you have no other details of the program, its logic or complier the chances of changing anything are virtually nil - it would be easier to write the whole program from scratch.
I understand,so if the code is not locked or protected can be read/rewrited,its a small board that saves sim card data on a file but the file is password protected and i forgot the password,the password was configured when the PIC was programed is all i know and i asume is not HEX is C++ but i'm not 100% sure about this.And i have almost 0 knowledge about C or electronics.
i will ask someone to read the microcontroller for me and save the code to a text document on a flash drive,is possible right?What board should i buy to doit my self?
The code is not text when it comes from the microcontroller. It is already compiled into a binary format. You feed this into a dis-assembler to get a basic ASM format out of it. I doubt you will find anything to turn it into C or any other higher level language.
You can also read the hex code into the disassembler function of mplab or other similar programs - however assuming you have no other details of the program, its logic or complier the chances of changing anything are virtually nil - it would be easier to write the whole program from scratch.
It's not easy to reverse engineer from HEX, particularly if the code comes from a C compiler (which produce horribly unreadable assember!), but it's certainly possible. For minor changes it may even be quite easy to do, but even that is going to be fairly time consuming.