Viruses Hardware and Software Trojans Attacks and Countermeasures