Como evitar que um arquivo seja copiado ou cortado no sistema de arquivos windows?

quero que um ficheiro exe não possa ser copiado ou cortado do sistema de ficheiros Windows para colar algures.

O exe é feito em C#. que só deve estar num PC.

Trabalhei com o FileSystemWatcher., ins, Área de Transferência . mas para tudo que eu preciso para detectar se esse arquivo está sendo copiado.

também vi 'Prevent' (http www free-download-blog.com disable-cut-paste-copy-delete-rename-functions-using-prevent), but I need to prevent apenas esse exe de ser copiado ou cortado.

Qualquer apontador ou ideia vai ajudar.

Author: GSerg, 2010-02-18

6 answers

Se você precisa que o exe seja executável, você precisa permitir carregá-lo na memória. Assim que você fizer, qualquer um pode lê-lo para a memória usando ReadFile e, em seguida, escrever para um local arbitrário usando WriteFile. Não está envolvida nenhuma cópia detectável na concha.

Uma boa leitura: O post de Raymond e os seus comentários sobre a prevenção da cópia .

 2
Author: GSerg, 2010-02-18 08:51:41
Bem, este é um problema difícil. Mesmo que apanhes o explorer.o que impede um utilizador de usar a janela de comandos? Ou escrever o seu próprio exe para o fazer? Iniciar no linux e lê-lo?

Ainda assim, você tem algumas opções (haverá mais, provavelmente) que você poderia tentar:

  • Use as permissões certas: defina a permissões tais que os utilizadores que você não quer cortar e colar não pode lê o ficheiro.

  • Escrever um controlador de dispositivo que pode enganchar para as chamadas do sistema de ficheiros e fazer isso para ti.

  • Encriptar o ficheiro.

E algumas opções como:

  • Use o APPINIT_ DLLs regkey para colocar seu próprio dll para ser carregado em cada processo ( eu não tenho certeza se isso vai funcionar com o processo de console embora). Em seguida, na sua carga dll, fazer IAT hooking para substituir o kernel32.liga para o ficheiro dll.

  • Substituir o kernel32.fale com a sua própria versão. Talvez tenha de fazer alguma confusão. com o formato PE etc.

Mas não há garantias. Se, por exemplo, você espera que eles sejam capazes de executá-lo, mas não copiá-lo, você provavelmente está preso.
 1
Author: , 2010-02-18 07:53:44

Como outros sugeriram, não será capaz de desactivar o comportamento de cópia/corte tão facilmente.
Uma alternativa seria desactivar a execução das versões copiadas . No seu executável pode verificar muitas coisas como:

  • a localização do executável actual é explicitamente a sua localização
  • o nome da máquina e do utilizador é aquele que autoriza

Pode até impedir que o ficheiro seja executado mais do que uma vez usando o Windows register itens (se já 1 não lançar). Não será perfeito uma vez que qualquer usuário experimentado poderia ajustar isso para fora, assumindo que eles estão procurando por isso. Mas dependendo do perfil dos utilizadores, pode ser suficiente.

 1
Author: Scott, 2014-11-17 00:01:18

Qualquer administrador local será capaz de desfazer tudo o que fizer para impedir a cópia. Eu posso praticamente garantir que o programa nessa página que você menciona depende de um serviço ou processo de fundo para evitar copiar e colar, e, portanto, é facilmente evitável. Se seus usuários estão em um ambiente fechado onde nenhum deles é admins e eles têm direitos muito limitados a seus PCs, então você tem uma chance.

 0
Author: MartW, 2010-02-18 08:02:59

Se você pudesse bloquear completamente o explorer de copiar ou mover arquivos, então tudo o que u precisa é de um software de terceiros para copiar arquivos (mas certifique-se de que ele pode filtrar extensões de arquivos) por exemplo copiar manipulador

 0
Author: Lonelywolf, 2013-09-08 03:38:32

Configure uma variável de ambiente na sua máquina

No seu código adicione uma verificação if (variável de ambiente== "mesmo como definido") // Executar o código mais // Suspende a execução

 0
Author: Ryan Fernandes, 2017-11-25 17:19:57