Convertendo um executável ELF (Linux) em um PE.exe (Windows)

0

Eu sou um novato quando se trata de usar arquivos de código de máquina !!!

Eu preciso usar um executável de código de máquina obtido como ELF (Linux) em um arquivo exe para o Windows. Eu tentei 'objconv' mas, embora o formato sugere para usar '-fPE', quando eu uso que recebo a linha de comando indica 'Erro 2004 linha de comando desconhecida' e 'Erro 2103 não é possível ler o arquivo de entrada'. Eu suspeito que há alguma incompatibilidade entre as plataformas Linus e Windows

    
por Chris Whiteley 20.04.2015 / 06:11

2 respostas

1

Embora o código objeto subjacente possa ser o mesmo entre as plataformas, aplicativos nativos não-triviais não podem ser compatíveis com binários entre o Windows e o Linux.

Se o executável do Linux que você está tentando converter estiver dinamicamente vinculado, ele exigiria a presença de bibliotecas que não existem no Windows (você pode ver essa lista de bibliotecas executando ldd /path/to/program na máquina Linux).

Mesmo que você tenha convertido todas as bibliotecas para o formato executável PE ou as vinculou estaticamente, o sistema chama o NT Kernel e O kernel do Linux é completamente diferente. Não há correspondência direta entre eles.

A melhor opção seria encontrar o código-fonte para o aplicativo original, se possível. Se o programa é escrito de forma portátil, ele pode compilar tanto no Windows quanto no Linux. Mesmo que as chamadas do sistema não sejam as mesmas entre as duas plataformas, um subconjunto de suas implementações da biblioteca C possui um comportamento padronizado.

    
por 20.04.2015 / 07:19
0

Isso quase certamente não vai funcionar. Linux e Windows não são bons um para o outro. O aplicativo que você está procurando para "converter" terá que ser recriado a partir do código-fonte para o Windows (o que exigirá o patch específico do Windows). Com alguma sorte, o aplicativo que você está tentando executar já tem uma porta do Windows.

    
por 20.04.2015 / 06:24