pic18F4550 code protection
The short answer is that these chips are not designed to be able to do that. The usual method to achieve this sort of thing is to remove access to the icsp pins (ex a drop of potting epoxy poured over top of the chip with no traces leading off with your icsp).