Ocultar um processo de outro processo

0

Eu tenho o programa B, que é projetado para não ser executado quando o programa A é iniciado. Eu preciso superar essa limitação. B mostra uma caixa de mensagem "A está em execução" apontando para o nome e o PID do processo. Eu suponho que B começa a procurar A a partir de uma lista de processos, então remover A de uma lista de processos pode ajudar. Ambos os processos possuem janelas e requerem entrada do usuário.

O que foi tentado até agora:

  • Renomeando o processo A
  • Procurando nas políticas de valores mobiliários por restringir determinado usuário a listar determinados processos
  • executando em outro pedido
  • Verificaram vários utilitários, mas todos ajudam a ocultar apenas uma janela
  • Encontrou este link , mas não é garantido que ele seja executado Win10 e requer compilação de fontes

Eu tenho o Windows 10.

    
por VladimirLenin 13.11.2017 / 14:03

2 respostas

2

TL; DR: ISSO SOBE COMO UMA IDÉIA MAU

Há provavelmente uma boa razão pela qual o B foi projetado para não rodar enquanto o A está rodando. A primeira coisa que vem à mente é que eles compartilham um banco de dados, chaves de registro ou alguma outra fonte de dados binários que pode estar corrompida se tratada por dois threads de uma só vez. De qualquer maneira, sem dar mais informações sobre os programas e como B poderia detectar qualquer coisa que qualquer um pode fazer é adivinhar. Se este for um programa do Windows, o Programa A provavelmente escreve algum tipo de chave de registro que B verifica durante a inicialização. Mas, então, ele também poderia desativar algum tipo de arquivo temporário. A possibilidade de esconder coisas de qualquer tipo de lista de processos me deixaria muito cauteloso em continuar a usar esse sistema, já que teria ramificações de segurança muito sérias. Você está basicamente perguntando como rootkit seu sistema.

    
por 13.11.2017 / 17:10
1

I make the assumption that B starts searching A from a process list...

Cenário 1: O programa que está verificando o outro programa não requer direitos administrativos para ser executado.

Se o programa B não exigir direitos administrativos para execução (incluindo o não uso de serviços em execução com direitos de administrador), execute-o no contexto de outra conta de usuário no computador que não tenha direitos de administrador . Para fazer isso, Shift + Clique com o botão direito do mouse no programa para obter a opção Executar como usuário diferente .

O programa será executado no contexto da outra conta de usuário e, como a conta não possui direitos de administrador, não pode enumerar os processos em execução no contexto de outros usuários. Portanto, não será capaz de "ver" o processo do outro programa.

Se você precisar dos programas para compartilhar o acesso aos recursos do sistema de arquivos ou do Registro, simplesmente conceda às duas contas de usuário acesso aos recursos mencionados. Isso não permitirá que um programa veja o outro.

Cenário 2: O programa que verifica o outro programa requer direitos administrativos para ser executado.

Um aplicativo que é executado no contexto de uma conta com permissões administrativas pode fazer qualquer coisa que desejar em seu computador, tornando extremamente desafiador subverter sua prerrogativa de exercer esses privilégios. O único caminho a seguir seria conhecer os testes exatos que o programa está executando para determinar se o outro aplicativo está sendo executado e, em seguida, ligar as várias chamadas de função da API envolvidas para remover a existência do programa de destino dos dados retornou. É assim que os rootkits escondem sua presença em um computador. Fazer isso cai bem fora do escopo desta resposta específica (e do site do Super Usuário em geral).

    
por 14.11.2017 / 04:54