Un fichier binaire c'est pas seulement le code et les données, c'est aussi un ensemble compliqué de structures qui donnent le point d'entrée, l'adresse des symboles importés et exportés, les données de relocation pour le binder, eventuellement des infos de debuggage tel que le mapping instruction/numero de lignes... Tout ceci est défini précisément, par exemple par le format ELF sous linux ou XCOFF/XCOFF64 sous AIX. Certaines de structures ont des champs optionels, des champs de padding, des champs inutililsés (réservés pour un usage futur)... qui peuvent être à 0.
Maintenant, le code lui-même peut contenir des zones à 0. Par exemple sous AIX, il y a quelques 0 à la fin de chaque routine, entre la dernière instruction et la "trace back table", une zone générée par le compilateur, qui donne un certain nombre d'informations sur la routine.