Eu sei que esta é uma pergunta antiga e você pode não estar mais para reproduzir o comportamento mencionado, mas ainda tentarei responder, pois pode ser útil para alguém com comportamento semelhante.
Verifique se há causas mais comuns
Primeiro, tentei identificar se tenho algum aplicativo óbvio em execução no meu computador que possa estar causando isso. Tais aplicativos seriam:
- Provedores de atalhos do Curstom
- Drivers de teclado ou mouse que podem, no caso, ter teclado ou mouse com botões adicionais. O motivo disso é que muitos deles simulam o uso de determinadas teclas pressionadas quando você clica ou pressiona esses botões adicionais.
- Algum outro software que possa ser usado para simular a entrada do usuário
Agora, se isso não revelar quaisquer causas mais óbvias, eu continuaria com abordagens mais avançadas.
Possível injeção de código
A primeira coisa que gostaria de fazer é verificar se algum código adicional pode ter sido injetado em um aplicativo específico (Notepad.exe no seu caso) verificando quais identificadores DLL estão abertos e comparando-os com a lista DLL que você pode obter da maioria scanners de dependência.
Qualquer identificador de DLL aberto para um arquivo DLL que não é relatado pelo scanner de dependência pode ser a DLL injetada em seu processo.
Então, no caso de encontrar um, eu tentaria descobrir a qual aplicativo ele pertence e, em seguida, com base no que essa aplicação pretende fazer, decida se essa DLL deveria ter sido injetada em meu aplicativo, em primeiro lugar ou não. / p>
No caso, se eu descobrisse que nenhuma DLL deveria ter sido injetada em meu aplicativo desse aplicativo ou se não consegui descobrir a qual aplicativo essa DLL específica pertence, eu a renomeia e, em seguida, reinicia o sistema operacional. se eu não fosse ser capaz de renomeá-lo de dentro do sistema operacional, pois ele seria bloqueado. Eu usaria o CD botable e, em seguida, renomeie esse arquivo.
Após a reinicialização, eu primeiro verificaria se o comportamento ainda é presistente e depois também verificaria todos os aplicativos que possam estar usando essa DLL por conta própria para ver se eles ainda estão funcionando.
Injetar meu próprio código / gancho
Se a primeira abordagem não retornasse nenhum resultado, eu iria injetar meu próprio código no aplicativo afetado para registrar mensagens específicas do Windows que são enviadas ou geradas por esse aplicativo específico.
Essa abordagem exige um bom conhecimento de programação, já que você precisa criar seu próprio programa para isso.
Também é bom que você tenha conhecimento básico avançado das partes internas do aplicativo afetado, para que você saiba quais mensagens precisa ouvir.
Crie um aplicativo de trapping
Eu também tentaria criar meu próprio aplicativo que poderia ser afetado por esse comportamento e, em seguida, tentar rastreá-lo a partir dele. Para fazer isso, eu precisaria ter conhecimentos básicos dos aplicativos internos afetados, a fim de reproduzir com êxito o cenário.
Quando estou pensando nisso, provavelmente faria isso antes de tentar o Code injection approach
Por enquanto, estas são as etapas que vêm à mente. Mas eu posso chegar a algumas ideias adicionais durante o processo também.