Packer, Crypter, Protector
Packers are the “outer shells” of some trojan horses, the purpose of which is to make detection and analysis by anti-virus software and malware analysts (respectively) more difficult by hiding the payload they contain, making it first necessary to unpack them so as to ascertain their purpose.
To make the tasks even more challenging, packers often employ various anti-debugging, anti-emulation (anti-VM) techniques and code obfuscation.
Packers also usually make the resulting executable smaller in size, and are therefore also used by legitimate software, not only malware. They serve several purposes, mainly compressing the executable and protecting applications against software piracy.