Monitoramento aplicativo chama a DLL
-
10-07-2019 - |
Pergunta
Em suma: Eu quero monitorar chamadas selecionadas de um aplicativo para uma DLL
.Nós temos uma aplicação VB6 antigo para o qual perdemos o código fonte (a empresa não estava usando o controle de origem de volta, então ..). Esta aplicação utiliza uma 3ª DLL partido.
Eu quero usar essa DLL em um aplicativo novo C ++. Infelizmente, a API DLL é apenas parcialmente documentado, então eu não sei como chamar algumas funções. Eu tenho a assinatura funções.
Uma vez que o aplicativo VB6 usa essa DLL, quero ver como ele chama várias funções. Até agora eu tentei ou olhou para -
- APIHijack - me obriga a escrever código C ++ para cada função. Desde que eu só precisa registrar os valores, parece um exagero.
- EasyHook -. Mesmo que 1, mas permite escrever no código em linguagem .NET
- OllyDbg com uHooker - Eu ainda tenho que escrever código para cada função, desta vez em Python. Além disso, eu tenho que fazer muitas conversões em Python utilizando o módulo
struct
, já que a maioria das funções passar valores usando ponteiros.
Desde que eu só precisa fazer login parâmetros funções Quero uma solução simples. Existe alguma ferramenta automatizada, para o qual eu poderia dizer que funciona para monitorar e sua assinatura, e em seguida, obter um arquivo de log detalhado?
Solução 2
Alguns mais Google busca encontrei o que estava procurando: WinAPIOverride32 . Ele permite escrever arquivos de texto, tais como:
CustomApi.dll|void NameOfFunction(long param1, double& param2);
Mais tarde, esses arquivos podem ser usados ??dentro do programa para registrar todas as chamadas para NameOfFunction
. Agora eu só preciso descobrir como matrizes e parâmetros structs log.
Outras dicas
solução A "estática" (no sentido em que pode capturar um rastreamento de pilha on demand) seria Process monitor .
Uma solução mais dinâmica seria ApiMonitor , mas pode ser muito velho para ser compatível com o aplicativos para monitor. Vale a pena tentar embora.
Visual Studio Addin Runtime Fluxo aqui :
Runtime Fluxo de monitores em tempo em tempo real e logs funcionar chamadas e parâmetros de função ao seu aplicativo em execução .NET e mostra uma pilha árvore traço. Sem instrumentação ou código-fonte necessário para monitoramento.