Increasing demands from nanotechnology require increasingly more rigorous methods to control nanoparticle traits such as assembly, size, morphology, monodispersity, stability, and reactivity. Viruses are a compelling starting point for engineering nanoparticles, as eons of natural biological evolution have instilled diverse and desirable traits. The next step is to reengineer these viruses into something functional and useful. These reengineered particles, or virus-based nanoparticles (VNPs), are the foundation for many promising new technologies in drug delivery, targeted delivery, vaccines, imaging, and biocatalysis. To achieve these end goals, VNPs must often be manipulated genetically and post-translationally. We review prevailing strategies of genetic and noncovalent functionalization and focus on the covalent modifications using natural and unnatural amino acid residues.