7zip: ¿cómo convertir archivos SFX de Linux a SFX de Windows?

Sep 11 2020

Necesito comprimir algunos archivos en archivos que todos puedan abrir con una PC con Windows sin 7zip instalado.
Pensé en correr

7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on -sfx -pXXXXXX "dest-archive.exe" "source-folder/"

pero esto parece crear un binario SFX de Linux (sistema operativo de la máquina host).
¿Es posible crear archivos SFX de Windows desde Linux?
¿Es posible reemplazar el código auxiliar de Linux por uno de Windows en archivos ya creados, sin extraer y archivar nuevamente?

Respuestas

1 Polizi8 Sep 11 2020 at 01:25

No parece distribuirse con el paquete Arch Linux , pero copiar el archivo "C: \ Archivos de programa \ 7-Zip \ 7z.sfx" a mi máquina Linux permitió la creación de archivos SFX de Windows con

7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on -sfx7z.sfx -pXXXXXX "dest-archive.exe" "source-folder/"

Corriendo

cat 7z.sfx old-linux-archive.exe > new-windows-archive.exe

permitido anteponer el stub de Windows al de Linux, sin necesidad de volver a comprimir el archivo:

file old-linux-archive.exe
#old-linux-archive.exe: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e0e81cea3791be68cca1d95da39fbb406b506cd4, for GNU/Linux 3.2.0, stripped

file new-windows-archive.exe
#new-windows-archive.exe: PE32 executable (GUI) Intel 80386, for MS Windows