Often do so. An EXE is created without additional data, and then an “archive” is added to it, while the parameters of the sections do not change. The loader will only load the EXE file itself into memory, the overlay will not be loaded, as it is not in the section. The launched EXE does, for example, GetModuleHandle (NULL), gets the address of its header in memory, parses the partition table and recognizes the file offset of the end of the last section. Exactly behind him is an overlay with an “archive”, which he can read as he pleases. Option number two: after assembly, the size of the EXE is entered into the unused header fields, and the running process reads from there the offset to the overlay.