If it runs ok in safe mode, I would try to scan the system for a virus or spyware and make sure it is clean.
Have you tried to make sure that your memory moduels are seated correctly. They can become insecure. If it had been a virus though, you would of seen the problem straight away after your restart. So I would guess it is a hardware problem more than a virus.
Sorry I cannot be more helpfull.