Injecting a DLL into a Process Space
9/8/2008
Há momentos quando um DLL deve ser automaticamente adicionado a um espaço processo para executar um exigido ação, de exemplo, uma depuração ferramenta que rastreia algumas ações.
Para todas as plataformas
Se a codificar origem nem a capacidade compilar a codificar está disponível, você é limitados em tipos de depuração você pode executar. O kernel pode carregar um DLL em qualquer espaço processo.
Para habilitar esse processo, adicionar o nome do DLL para a seguinte chave Registro:
HKEY_LOCAL_MACHINE\SYSTEM\KERNEL
"InjectDLL" = REG_MULTI_SZ : "MyDLL1.DLL","MyDLL2.DLL",
O tipo de dados é REG_MULTI_SZ ou um matriz de seqüências, que pode lista mais de um DLL. O nome da DLL pode conter a caminho completo e nome arquivo ou apenas o nome arquivo.
Aplicativos que instalar as DLLs para ser injetado em um processo deve anexar ou remover somente suas DLL específicas a partir de Registro.
Para Windows incorporado CE
Quando um processo é criado e todas as DLLs implicitamente-vinculado são carregadas, o kernel carrega cada DLL na InjectDLL. Falha ao carregar o DLL Não evitar o aplicativo de inicialização. Um DLL pode falhar ao carregar se o DLL retorna FALSE em DllMain ou se o aplicativo é de confiança e não o DLL sendo carregado. As DLLs pode verificar em DLLMain Para determinar qual processo estiverem sendo carregados em por chamado GetModuleFileName. Os valores precisar transmitir são (NULL, & nome do arquivo, nTamanho)
.
Para Mobile Windows
Quando um processo é criado e todas as DLLs implicitamente-vinculado são carregadas, o kernel carrega cada DLL na InjectDLL. Falha ao carregar o DLL Não evitar o aplicativo de inicialização. Um DLL pode falhar ao carregar se o DLL retorna FALSE DllMain ou se o aplicativo é privilegiado e a DLL carregados não é. As DLLs pode verificar em DLLMain Para determinar qual processo estiverem sendo carregados em por chamado GetModuleFileName. Os valores precisar transmitir são (NULL, & nome do arquivo, nTamanho)
.