Packing e unpacking: codice che si svela a runtime
Il packing avvolge il vero codice in uno stub che lo decomprime/decifra a runtime. Su disco non c'è nulla di analizzabile: alta entropia, IAT minima, poche stringhe.
Unpacking
L'obiettivo è trovare l'Original Entry Point: il momento in cui lo stub ha ricostruito il codice e sta per saltarci. Si mette un breakpoint sulla scrittura+esecuzione della regione svelata, o su API tipiche (VirtualAlloc, LoadLibrary), poi si fa un dump della memoria e si ricostruisce l'IAT.
# in un debugger: esegui fino all'OEP, poi dump + fix IAT (Scylla)
# UPX (packer benigno): upx -d file.exeDifesa/analisi
Sandbox ed emulazione fanno auto-unpacking eseguendo il campione. L'entropia e le sezioni scrivibili+eseguibili sono indicatori statici. I packer non sono malevoli di per sé (protezione software), ma sono la norma nel malware.