Criamos uma ferramenta baseada em Python para essa finalidade: link
A ferramenta é bastante simples. Como é mencionado no readme correspondente, você associa o arquivo .dll ao arquivo DllDispatcher.bat
, que chama DllDispatcher.py
file, que analisa o conteúdo .dll e determina se a dll fornecida é 32 bits ou 64 bits. Com base nisso, ele chama um dos dois aplicativos fornecidos. Os caminhos para os aplicativos são simplesmente codificados no início do arquivo DllDispatcher.py
.
Não encontrei uma maneira fácil de determinar se uma dll é de 32 ou 64 bits. GetBinaryType
só funciona para arquivos .exe. Para uma dll, você deve realmente carregar a biblioteca e, em seguida, passar a alça para IsWow64Process()
ou analisar manualmente o cabeçalho da dll (ele tem o formato de arquivo PE). Eu escolhi o último. É menos robusto, mas mais rápido. Eu acho que a robustez não é um grande problema, já que é improvável que o formato PE mude em um futuro próximo, e essa solução não precisa ser completamente à prova de balas.