Ir para conteúdo
Fórum Script Brasil
  • 0

Ocultar Pasta


Paulo Nobre

Pergunta

Existem programas que fazem com que uma pasta fique inacessível.

Fiquei tentando imaginar como isso seria feito e não consegui imaginar.

Alguém saberia dizer como fazer.

Digo isto porque usar

var

Atributos: Integer;

begin

Atributos:= FileGetAttr('C:\TesteEsconde');

FileSetAttr('C:\TesteEsconde',Atributos + faHidden)

end;

var

Atributos: Integer;

begin

Atributos:= FileGetAttr('C:\TesteEsconde');

FileSetAttr('C:\TesteEsconde',Atributos - faHidden)

é apenas um paleativo, pois o usuário pode via explorer optar por mostrar todas as pastas ocultas e aí babau.

Não acredito que os programas que fazem isto copiam a pasta do usário apagam a verdadeira e escondem ou compactam a original isto seria muito risco para eu acreditar.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Estou ressuscitando esta pergunta para ver se alguém tem alguma idéia.

Como vocês estão vendo acima, postei a primeira vez em abril de 2006.

Como de lá para cá temos muita gente experiente frequentando o forum pode ser que agora consiga obter a resposta!!

Link para o comentário
Compartilhar em outros sites

  • 0

Interessante.

Existem programas que fazem com que uma pasta fique inacessível.

Que programas? Nunca ví nenhum. E como eles deixam inacessíveis? Não permitindo que o usuário vaja seu ícone e dizendo que não existe, ou dizendo que está encriptada e necessita de senha? Porque se for encriptação eu posso escrever umas rotinas que pegam um arquivo e embaralham ele todinho ficando impossível ter acesso as suas informações sem o fornecimento de senhas. E qual a finalidade desse recurso?

Explica aí.

Link para o comentário
Compartilhar em outros sites

  • 0

Thales, já vi e testei a muito tempo vários tipos:

Um deles fazia a pasta sumir literalmente e para tê-la de volta apenas com senha.

Alias s e não me engano tinha que ter senha para trancar a pasta e destrancar. Se não uma pessoa que usasse seu computador sairia trancando as pastas do seu computador e você estaria ferrado.

Outro programa, mudava o ícone de uma pasta para outro com um ícone diferente e a pasta ficava inacessível. Só com senha.

É claro que dá para fazer pois se não, não existiriam os programas mas deve ser dificil pois venho postando esa pergunta desde quando comecei a usar o delphi(2 anos) e até hoje nínguém se quer teve uma idéia de como começar a fazer, em nenhum forum.

Os processos devem ser diferentes para windows diferentes, pois um programa que vi tinha versão para 98 e XP.

Vou ver se me lembro onde encontrar e te passo!

Link para o comentário
Compartilhar em outros sites

  • 0

Que programas? Nunca ví nenhum.

Fui verificar se tinha algum ainda comigo e não achei, aí pesquisei estes:

http://superdownloads.uol.com.br/download/i41695.html

http://superdownloads.uol.com.br/download/i36514.html

http://superdownloads.uol.com.br/download/i18933.html

(Esse acima já usei é razoável, mas já vi gente metendo o pau no programa. Ele é pequeno e se não me engano é feito em C++ ; Quem fez é um programador chamado Marcos Velasco, ele tem um site e diversos programas alguns até interessantes.)

Leia os comentários de algumas pessoas nas páginas acima.

São todos do superdowloads

Link para o comentário
Compartilhar em outros sites

  • 0

Paulo Nobre, eu sei que há uma função da API que permite monitorar algumas ações sobre arquivos, diretórios - notificadores (FindFirstChangeNotification - msdn). Havia baixado uns componentes há alguns anos.

Dando uma pesquisada com o que me lembrava, achei uns componentes já prontos para isso: Torry's (link), Angus Johnson (link).

Vai que server de partida?!.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

O usuário do programa poderia trancar ou esconder uma pasta, desta forma ninguém teria acesso a ela.

A propósito você baixou algum dos programas dos links?

Já useo o terceiro, é o único que conheço.

Link para o comentário
Compartilhar em outros sites

  • 0

var
Atributos: Integer;
begin
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos + faHidden)
end;

var
Atributos: Integer;
begin
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos - faHidden)
Quero avisa-lo de que fez uma coisa extremamente errada ou subtrair ou somar constantes de um Flags, porque se o flag já estiver no estado desejado ele mudará outros atributos do arquivo. O correto seria -> para setar flag ->
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos or faHidden);
para desligar flag ->
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos and not(faHidden))

Link para o comentário
Compartilhar em outros sites

  • 0

Paulo, caso os componentes mencionados pelo Micheus não sirvam, o que eu poderia fazer pra você seriam funções que recebam como parametro o nome de uma pasta e uma senha, aí a função iria encriptar todos os arquivos desta pasta. O usuário poderia ainda ver e ter acesso aos arquivos, mas estariam encriptados e portanto ninguém nem nenhum programa seria capaz de entender nada dos dados desses arquivos. Aí teria uma função que receberia a senha e a pasta e faria o processo inverso para desencriptar. Só que se for desencriptado com a senha errada, diga adeus pro seu arquivo, nunca mais você vai conseguir ler ele. A não ser que você encripte denovo com a senha errada e por fim desencripte com a senha certa.

A propósito você baixou algum dos programas dos links?

Ainda não baixei, depois vou dar uma olhada.

A propósito, o windows tem um sistema de encriptação de pastas, só que não confio muito. Você tem que mandar encriptar a pasta via propriedades e depois criar um certificado nas opções de internet->conteúdo. Aí se outro usuário tentar acessar a pasta, não vai conseguir. Mas se você estiver logado na conta onde foi feita a encriptação você poderá acessá-la. Ou seja qualquer usuário não autorizado não conseguirá ter acesso a pasta, inclusive crackers pela internet.

Link para o comentário
Compartilhar em outros sites

  • 0

var
Atributos: Integer;
begin
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos + faHidden)
end;

var
Atributos: Integer;
begin
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos - faHidden)
Quero avisa-lo de que fez uma coisa extremamente errada ou subtrair ou somar constantes de um Flags, porque se o flag já estiver no estado desejado ele mudará outros atributos do arquivo. O correto seria -> para setar flag ->
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos or faHidden);
para desligar flag ->
Atributos:= FileGetAttr('C:\TesteEsconde');
FileSetAttr('C:\TesteEsconde',Atributos and not(faHidden))

Valeu pelo toque Thales

Só uma dúvida: Esses componentes ocultam a pasta pelo prompt do DOS também; ou seja; se for dado um dir ela não aparece ?

Realmente s3c, uma vez vi alguém fazendo uma crítica negativa a um programa deste tipo, pelo fato de poder obter algo pelo DOS!

Link para o comentário
Compartilhar em outros sites

  • 0

Só uma dúvida: Esses componentes ocultam a pasta pelo prompt do DOS também; ou seja; se for dado um dir ela não aparece ?

Realmente s3c, uma vez vi alguém fazendo uma crítica negativa a um programa deste tipo, pelo fato de poder obter algo pelo DOS!

Mas então não ficaria tão seguro assim. Seria melhor a sugestão do Thales de criptografia.

Link para o comentário
Compartilhar em outros sites

  • 0

Aqueles componentes que o Micheus falou servem, pelo que entendí, para monitorar mudanças em pastas e disparar eventos. Mas confesso que a anta aqui não entendeu como isso poderia impedir o acesso as pastas. Desculpe :( . Seria nos eventos aonde se poderia modificar um parâmetro negando o acesso da pasta?

Digo, já que os componentes servem para monitorar pastas, o correto é que eles notifiquem um procedimento para que este então decida conceder ou negar o acesso a pasta. Não é isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Ouví falar alguma coisa de API Hooking sobre isso, mas não sei se dá para deixar o Windows fazer isso; porque se for seu programa, ela só funciona enquanto ele estiver no ar, depois o gancho vai pro espaço.

De qualquer forma, se tiver acesso pelo DOS, fica inseguro. Acho que o mais certo seria descobrir um jeito de esconder as pastas pelo sistema de arquivos NTFS e FAT.

Link para o comentário
Compartilhar em outros sites

  • 0

É impressão minha ou estamos com dois tópicos abertos discutindo praticamente o mesmo assunto (ou misturando os assuntos). :unsure:

Aí teria uma função que receberia a senha e a pasta e faria o processo inverso para desencriptar. Só que se for desencriptado com a senha errada, diga adeus pro seu arquivo, nunca mais você vai conseguir ler ele. A não ser que você encripte denovo com a senha errada e por fim desencripte com a senha certa.
Thales, talvez se utilizar um "esquema", do tipo acrescentar ao final do arquivo (após o EOF) um nº, para validação seja possível evitar este "efeito colateral" (não sei se seria 100% confiável).

Digo, já que os componentes servem para monitorar pastas, o correto é que eles notifiquem um procedimento para que este então decida conceder ou negar o acesso a pasta. Não é isso?
Thales, seria sim. Mas até hoje (já fucei isto há algum tempo atrás), não achei nenhum código que mostrasse como isto poderia ser feito. A questão de citar a monitoração de pastas/arquivos é para o caso de algum tipo de informação ser processada. Por ex., se um nova pasta for adicionada, poderia ser verificada a necessidade criptografá-la ou adicionar à algum catálogo, etc. Então vale saber que ela existe e pode ser útil em uma implementação.

Realmente s3c, uma vez vi alguém fazendo uma crítica negativa a um programa deste tipo, pelo fato de poder obter algo pelo DOS!
Paulo, provavelmente porque para o caso dos Win31/95/98/Me seria necessário escrever um processador comandos para substituir o original (command.com - DOS), implementando as funcionalidades utilizadas sobre o windows.

Acho que o mais certo seria descobrir um jeito de esconder as pastas pelo sistema de arquivos NTFS e FAT.
s3c, esta é justamente uma questão a avaliar.

O sistema FAT(16 ou 32) não oferecem recurso para restringir acesso à arquivos/pastas. E para este caso, acredito que não tenha jeito de fazer algo seguro (exceto a criptografica, como citou o Thales - porém com riscos).

Já com o sistema NTSF, que oferece recursos para segurança, as coisas ficariam mais fácil. Através do uso de funções como GrantAccessByName e DenyAccessByName (estes são métodos de uma classe disponível no SourceForge - link - MS Windows ACL-Library for Delphi) ficaria fácil implementar através de Shell um recurso para via pop-up o usuário acessar/bloquear a pasta/arquivo específico. (Sobre o link acima, o programa exemplo é simples e do tipo console. Terá que ser alterado para funcionar, já que está configurado com o diretório de teste do autor)

Talvez seja o caso de definir um perfil, para então tentar traçar um plano, já que provavelmente necessitarão de soluções distintas.

Link para o comentário
Compartilhar em outros sites

  • 0

É impressão minha ou estamos com dois tópicos abertos discutindo praticamente o mesmo assunto (ou misturando os assuntos).

Micheus

O tópico que coloquei de novo em discussão tinha sido um que abri em 2006.

Coloquei-o exatamente para não ter que abrir outro.

Como o assunto é complexo, na ocasião nem boas discussões, como esta atual, foram feitas.

Um visitante reabriu um outro semelhante que eu havia colocado em 2004, quando comecei a ter contato com DELPHI, que na ocasião também não chegamos a nenhuma conclusão. Não sei porque o visitante foi buscar este tópico e não aproveitou o mesmo.

Paulo, provavelmente porque para o caso dos Win31/95/98/Me seria necessário escrever um processador comandos para substituir o original (command.com - DOS), implementando as funcionalidades utilizadas sobre o windows.

Embora tenha colocado este tópico a tona pela terceira vez, só agora estou podendo entender de fato a complexidade e as varianters do assunto. Não é a toa que a maioria dos programas que se propôem a fazer isto acabam tendo algum tipo de problema. Pelo menos todos que já testei até hoje sempre recebiam alguma crítica negativa.

Link para o comentário
Compartilhar em outros sites

  • 0
Thales, talvez se utilizar um "esquema", do tipo acrescentar ao final do arquivo (após o EOF) um nº, para validação seja possível evitar este "efeito colateral" (não sei se seria 100% confiável).
Pode parecer mentira mais foi exatamente o que eu pensei em fazer, como eu sugerí num outro post, acho que nem deste tópico. Além do mais eu vou ter que colocar várias coisas depois do EOF, como nome original do arquivo, atributos originais, tamanho...

Mais o que é mais seguro, criptografia ou o sistema de proteção do NTFS?

Link para o comentário
Compartilhar em outros sites

  • 0
Além do mais eu vou ter que colocar várias coisas depois do EOF, como nome original do arquivo, atributos originais, tamanho...
e tudo isso criptografado, certo?!

Mais o que é mais seguro, criptografia ou o sistema de proteção do NTFS?
Thales, acho que, como mensionei no post anterior, em adendum a colocação do s3c, é uma questão de avaliação. Isto porque estamos partindo do princípio que falamos da possibilidade de implementação de uma aplicação para proteção de pastas/arquivos.

Ocorre que quando falamos de partições NTSF, implica em estarmos trabalhando com SO Windows com tecnologia NT (NT, 2K e XP) e estes SO's já implementam recurso de segurança. Assim, acho que fica complicado querer reinventar a roda. Além do fato de que seria necessário estar logado com direitos de administração para realizar qualquer procedimento sobre pastas/arquivos que não estão disponíveis para "usuários normais" (a lógica diz isso). Estes sistemas já viabilizam a questão da criptografia (ver artigo Usando o sistema de arquivos com criptografia).

Deste modo, acredito que nossa discursão se aplique SO's que utilizem FAT como sistema de arquivos. Nestes, apesar dos riscos, acho que criptografia seria o meio mais seguro de manter os dados protegidos. Mas, vamos esbarrar com um problema. Acho que, por este motivo, é difícil encontrar algum programa que não tenha deficiências (como mensionou o Paulo). A questão é: para manter a confiabilidade, as informações deveriam ser descriptografada na memória. Sem estar integrado ao SO, isto seria possível?

São apenas considerações minhas.

[]s

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, nunca utilizei, mas esses softwares que ocultam pastas precisam estar rodando para as pastas ficarem invisíveis ?

Porque se for isso, basta um mandrake ir no task, matar o programa e a pasta volta a aparecer.

Se não for isso, como eles fazem ?

E como eles conseguem ocultá-las pelo DOS ?

Link para o comentário
Compartilhar em outros sites

  • 0

Pois é, sobre esses programas que o Paulo citou, eles impedem que o usuário leia os arquivos mas eles ainda estão lá bonitinhos, é só o cara saber dar a volta nessa proteção que ele consegue acessá-los. Sempre tem um jeito.

Ocorre que quando falamos de partições NTSF, implica em estarmos trabalhando com SO Windows com tecnologia NT (NT, 2K e XP) e estes SO's já implementam recurso de segurança. Assim, acho que fica complicado querer reinventar a roda. Além do fato de que seria necessário estar logado com direitos de administração para realizar qualquer procedimento sobre pastas/arquivos que não estão disponíveis para "usuários normais" (a lógica diz isso). Estes sistemas já viabilizam a questão da criptografia (ver artigo Usando o sistema de arquivos com criptografia).
Pois é, como eu mencionei num post anterior, eu já usei esse sistema decriptografia, e me pareceu muito bom. Se você criptografa uma pasta, cria um certificado, e possui senha na sua conta de usuário do Windows, acho que é bem seguro. Desse modo somente da sua conta você terá acesso aos dados, qualquer outro usuário será bloqueado.

Além do mais eu vou ter que colocar várias coisas depois do EOF, como nome original do arquivo, atributos originais, tamanho...

e tudo isso criptografado, certo?!

Com certeza, menos o tamanho que será necessário para verificar se a senha está correta no caso de o arquivo ser menor do que um cluster.

Eu fiz aqui a rotina que faz a encriptação, funcionou que é uma maravilha. Agora só falta fazer o milagre de escrever uma rotina que converta aquele lixo todo de volta pro que era antes. :P

A questão é: para manter a confiabilidade, as informações deveriam ser descriptografada na memória. Sem estar integrado ao SO, isto seria possível?
você quer dizer apenas ler um bloco do arquivo e descriptografar em memória, sem atualizar o arquivo, é isso?
Link para o comentário
Compartilhar em outros sites

  • 0
Pois é, como eu mencionei num post anterior, eu já usei esse sistema decriptografia, e me pareceu muito bom. Se você criptografa uma pasta, cria um certificado, e possui senha na sua conta de usuário do Windows, acho que é bem seguro. Desse modo somente da sua conta você terá acesso aos dados, qualquer outro usuário será bloqueado.
Por isso é que pergunto: será que vale a pena reinventar a roda? Até porque ser for pensar em uma solução para os sitemas com FAT, o enfoque provavelmente seria outro.

você quer dizer apenas ler um bloco do arquivo e descriptografar em memória, sem atualizar o arquivo, é isso?
Positivo. Se você descriptografar em um arquivo em disco, por ex., para poder abrir o arquivo ou executá-lo, então sua confiabilidade foi para o espaço.

Por isso coloquei o questionamento (Sem estar integrado ao SO, isto seria possível?). Quando se lê aquele artigo da TecNet, dá para ter uma idéia um pouco melhor da complexidade da coisa. E sabemos muito bem, que não existe segurança 100%, o máximo que se consegue é 99,99% e é o mais próximo disto que temos que tentar chegar.

Link para o comentário
Compartilhar em outros sites

  • 0
Por isso é que pergunto: será que vale a pena reinventar a roda? Até porque ser for pensar em uma solução para os sitemas com FAT, o enfoque provavelmente seria outro.
Então me responda, eu pego um arquivo e compacto ele com senha no WinRar, ou seja, o WinRar vai encriptá-lo. Agora me responda, quem seria capaz de abrir esse arquivo sem saber a senha. Eu nunca soube de nenhum caso, por mais hacker que o cara seja. Pois é de maneira semelhante que eu estou fazendo. Isso é, se é que eu consiga desencriptar, porque por enquanto só conseguí encriptar :P . Já foi metade do caminho. :P
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...