A "immagine imballato" è quella in cui il codice eseguibile è compresso con l'intenzione di rendere il file più piccolo. La riduzione tipica della dimensione del file si aggira intorno al 50%. Utilizza un "loader" in fase di runtime per decomprimere i dati in codice eseguibile prima che inizi l'esecuzione. È stato utile nei tempi passati con capacità limitata di archiviazione su disco e larghezza di banda limitata della rete.
Oggi con i dischi terabyte e le reti megabit è un odore, l'imballaggio può anche essere sfruttato per nascondere il codice dannoso. Sicuramente la ragione per cui Process Explorer la colora diversamente.
L'euristica esatta utilizzata da PE per rilevare l'imballaggio non è documentata. Certo che no, sarebbe troppo facile da eludere. Non è banale, non esiste un modo standard per implementare l'imballaggio. Approssimativamente, guarderebbe le sezioni nel file eseguibile e alzerebbe la bandiera blu quando troppe cose sembrano codice non eseguibile.
E sì, quando si utilizza/ZI ci sarà molto. Più significativa è l'opzione del linker/INCREMENTAL, attivata automaticamente quando si utilizza/ZI. Che ti permette di scrivere codice durante il debug, l'opzione Modifica + Continua. E ricollegare rapidamente il file eseguibile senza che il linker debba rigenerare completamente il file. Questo può funzionare solo quando c'è molto spazio vuoto nel file eseguibile, disponibile per aggiungere nuovi byte di codice macchina. Questa è una bandiera blu.
Non è una preoccupazione reale, ovviamente, il tuo utente vedrà solo la versione di rilascio del tuo programma. Che è costruito senza/ZI e senza/INCREMENTAL.
fonte
2016-02-17 09:12:02
Leggere la documentazione di Visual Studio: [/ Z7,/Zi,/ZI (formato informazioni di debug)] (https://msdn.microsoft.com/en-us/library/958x11bc.aspx) e vedere anche [ Understanding Process Explorer] (http://www.howtogeek.com/school/sysinternals-pro/lesson2/). –
Ma quella pagina MSDN non dice nulla di "immagine compressa"; e che la pagina di Howtogeek non dice nulla sulle opzioni del compilatore/Zx. –
I file il cui codice deve essere decompresso in memoria prima che possa essere eseguito. Segno comune di malware. http://forum.sysinternals.com/packed-images_topic442.html –