Так вроде бы сама транзакция подписывается в аппаратнике, а туда вирус проникнуть не может. Или я чего-то недопонимаю?
Вы все правильно понимаете. Приватные ключи, которые нужны для подписания транзакции никогда аппаратника не покидают и не подвластны никакому вирусу. Но сам по себе аппаратный кошелек сформировать транзакцию не может. Чтобы это сделать его подключаютя к программному клиенту, который установлен на компьютере. Если компьютер скомпрометированный, то находящийся зловред может подставить свой адрес и аппаратник подпишет транзакцию с фейковым адресом получателя, если вы не обратите внимания и дадите это ему сделать. Можете рассматривать аппаратный кошелек как черный ящик, в котором заперты приватные ключи.