Mesclar dlls nativas em exe

1

É possível mesclar várias DLLs nativas em um exe?

Sim, estou ciente de que o seu é facilmente possível com dlls .NET / Mono / Managed, mas posso fazer o mesmo com os nativos? Eu encontrei UPX , mas como parece, ele só pode compactar os arquivos, não mesclá-los.

    
por Bobby 18.02.2011 / 10:01

2 respostas

1

As bibliotecas de links dinâmicos são projetadas para serem usadas externamente. Embora teoricamente seja possível reempacotar as funções que elas contêm, de maneira realista, o melhor que você pode fazer de forma confiável é empacotar tudo em um arquivo de autoextração que extrairá o executável e suas DLLs em uma pasta temporária e, em seguida, executará o executável. / p>

Se você puder obter o código-fonte, provavelmente poderá compilá-lo com alterações mínimas em uma biblioteca estática (.lib) que pode estar vinculada ao programa que precisa das DLLs, em vez de as DLLs serem externas. / p>     

por 18.02.2011 / 15:11
1

Supondo que você tenha um executável que importe estaticamente de uma DLL, você pode usar a ferramenta pefrmdllembed usando o " -impinj "opção de linha de comando. Ele pode mesclar arquivos DLL nativos em arquivos EXE nativos (da mesma arquitetura) ao resolver as importações.

Exemplo: pefrmdllembed.exe -impinj myapp.exe ogg.dll myapp_injected.exe

Funcionará com a maioria das DLLs. Tenha cuidado com os recursos especiais do carregador do NT, como o TLS estático; sem suporte sob 64 bits e pode não produzir bons resultados em 32 bits.

    
por 02.08.2017 / 22:35

Tags