Fórum Importar func. de uma DLL em um arq. de recurso sem salva-lo #196525
21/11/2003
0
OBS: se alguém souber como usar a DLL carregada em um TMemoryStream também ajuda.
Desde já agradeço a vc que dispensou um minuto de sua atenção para ler este tópico.
Akelle Kara
Curtir tópico
+ 0Posts
25/11/2003
Akelle Kara
Gostei + 0
25/11/2003
Beppe
Alguns internals do funcionamento de imagens PEs(.exe, .dll, .ocx, .bpl):
1) Quando um PE é aberto para execução(do código), ele é carregado pelo loader, e alguns offsets são ajustados.
2) O handle de uma image nada mais é o endereço do primeiro byte do PE. Se você tentar Caption := PChar(HInstance), verá ´PE´. No arquivo existem alguns bytes que antecedem isto, mas são destinados ao DOS e pulados.
3) A API pública do Win32 só permite a carga de PEs via nome de arquivo, embora deve haver alguma function em ntdll.dll que permita o que você quer.
Então, para fazer o que você quer, você terá que fazer o trabalho do loader, um trabalho árduo e sem muitos benefícios. Então passar o endereço da string ´PE´(offset = PImageDosHeader(Stream.Memory)._lfanew) para funções como GetProcAddress.
Gostei + 0
27/11/2003
Akelle Kara
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)