Binário para muitas plataformas?

0

Existe alguma maneira de criar um binário que será executado em muitos formatos de arquivo executáveis (por exemplo, Mach-O e ELF)? Mesmo que seja apenas um arquivo que contenha os dois e execute o caminho certo, eu gostaria de criar um executável que funcione tanto no Linux quanto no Mac.

    
por tkbx 25.12.2012 / 18:16

1 resposta

1

Resposta curta: não, porque cada formato binário começa com uma sequência específica ( "número mágico" ) que identifica o formato. Os binários ELF começam com 0x7F 45 4C 46, binários de arco único Mach-O com 0xFE ED FA CE ou 0xCE FA ED FE (dependendo da ordem de bytes) e binários gordos Mach-O com 0xCA FE BA BE. Como o binário não pode começar com mais de um deles, ele não pode ser válido em vários formatos.

Agora, pode ser possível fazer algo mais complicado, como ter um shell script que convence os loaders a executar parte de si mesmo ... Mas isso vai além do meu conhecimento (e dependerá não apenas dos formatos binários que você está tentando carregar, mas os sistemas operacionais que você está tentando carregá-los também ...)

    
por 26.12.2012 / 07:01

Tags