What effect do viruses have on software and hardware?