Vedi questa risposta per alcune riflessioni sulle definizioni di tali termini e, in particolare, su quanto siano indistinti e per lo più irrilevanti.
Se vogliamo davvero fare distinzioni, allora:
- Uno spyware è un software che spia l'utente.
- Un trojan è un software dannoso che viene installato dalla vittima stesso, che è stato ingannato pensando che il software fosse benigno.
Quindi i due termini non sono affatto opposti! In realtà, sono ortogonali. Un dato pezzo di malware (il termine generico, che significa "software dannoso") può essere un trojan o qualcos'altro (a seconda di come entra il computer della vittima), e può essere uno spyware o qualcos'altro (a seconda che, una volta lì , si impegna in attività di spionaggio).
Nei vecchi tempi, il malware era principalmente virus (cioè il malware che si propaga innestandosi su file eseguibili scambiati tra computer) e worm (sfruttamento automatico delle vulnerabilità di rete). Alcuni non avevano alcun carico utile, semplicemente si riproducevano per il gusto di farlo; ma la maggior parte ha cercato di essere distruttiva, cancellando file e sistemi operativi e persino rompere l'hardware. Oggigiorno, un sacco di malware sfrutta la creduloneria dell'utente umano (è molto più facile che fare affidamento su qualche vulnerabilità sfruttabile), costituendo la grande categoria "trojan". Inoltre, la maggior parte dei malware cerca di essere poco appariscente: il tipico malware non tenta di rompere la macchina; al contrario, sifone silenziosamente i tuoi segreti (ad esempio le password).
"Assumere il controllo" non è una categoria ben definita. Per definizione, il malware in esecuzione su una macchina lo sta "controllando", anche se solo in modo transitorio. La maggior parte dei malware includerà alcune backdoor in modo che l'autore del malware possa utilizzare un'istanza di malware installata come punto di ingresso per spingere il nuovo codice di attacco, indipendentemente dal fatto che tale escalation sia effettivamente pianificata o meno.