Mostra todos os arquivos que um programa abriu

0

Estou procurando uma maneira de determinar todos os arquivos que um processo abriu no Windows. Isso é diferente de muitas perguntas (já respondidas) aqui, porque eu preciso conhecer todos os arquivos que o processo abriu, não apenas os que ele abriu quando eu os busco. Dessa forma, evito a falta de arquivos que foram completamente carregados na memória e depois fechados. Aqui estão algumas coisas que eu tentei que não funcionaram:

  • ProcExp e Handle por SysInternals (ambos listam apenas arquivos abertos no momento)
  • ProcMon by SysInternals (com filtros do nome do processo e da operação ReadFile e WriteFile). Este me surpreendeu. Por que não funcionaria?

Meu caso de teste está abrindo um arquivo de texto fora de uma unidade flash com o Bloco de Notas, portanto, não esperaria que o ProcExp ou o Handle funcionassem (desde que o Bloco de Notas lê tudo na memória e fecha o arquivo). ProcMon parece que deveria funcionar, no entanto. Na verdade, quando edito o arquivo de texto e o salvo, vejo a operação WriteFile e o caminho para o arquivo de texto. As únicas operações ReadFile que posso ver quando abro o arquivo, no entanto, são de C:\Windows\Fonts\StaticCache.dat . Talvez seja apenas que minha configuração de filtro está errada? Ou outra ferramenta funcionaria melhor para mim?

    
por KnightOfNi 31.08.2015 / 19:24

1 resposta

1

Então, eu descobri como fazer isso. Infelizmente, parece não haver muitos recursos prontamente disponíveis sobre como usar o ProcMon, e meus filtros estavam realmente trabalhando contra mim. Aqui está um golpe a golpe:

  1. Adicione um filtro para incluir o processo que você deseja examinar
  2. No lado direito da barra superior (que fica logo abaixo de Arquivo, Editar, Evento etc.), existem cinco ícones, dos quais quatro devem ser destacados por padrão. Cancele a seleção de todos eles, exceto "Mostrar atividade do sistema de arquivos" (um computador com uma lupa sobre ele). Agora você deve ver apenas arquivos sendo acessados pelo seu programa, e não a quantidade usual de chaves de registro.
  3. Para filtrar as DLLs indesejadas e os arquivos de configuração que normalmente acessa, descubra em qual pasta a maioria deles está (geralmente C: \ Windows) e adicione um filtro como este: 'Path' 'Contains' [your folder] 'Exclude'
  4. Como alternativa ao passo 3, adicione um filtro como este para excluir apenas dlls: 'Path' 'Contains' '.dll' 'Exclude'

Agora você deve ver quase exclusivamente arquivos e pastas que o programa está abrindo e que não são dependências.

    
por 31.08.2015 / 23:08