Hook de Pastas e Diretorios

Delphi

20/05/2005

Será possivel hookar os diretorios ou pastas do sistema? Estou desenvolvento um sistema de protecao do windows e queria protejer com uma senha ou somente bloquear o acesso (ao tentar acessar a pasta o programa) às pastas selecionadas pelo usuario. Porem nao consegui e fazer sozinho, nao achei nada a respeito aqui no forum ou em outro site.

Vlw e t+


Crash

Crash

Curtidas 0

Respostas

Nerdex

Nerdex

20/05/2005

Você pode utilizar o MadCodeHook (www.madshi.net) que é free para uso não comercial... mas quem é perito nisto é o Administrador Nildo, para isto procure os posts dele sobre o assunto...: :wink:


GOSTEI 0
Crash

Crash

20/05/2005

É eu sei q ele eh perito nisso.. esse post foi subliminarmente para ele..heheheh... mais, eu ja procurei aqui no forum... e eu tambem jah conhecia o MadShi e nao consegui nada com ele.

mais vlw


GOSTEI 0
Michael

Michael

20/05/2005

Olá amigo!

A resposta é a q o amigo NerdeX escreveu: madCodeHook. Com ela vc pode monitorar as chamadas da API do Windows e interceptá-las. Vc só precisa saber quais API´s são usadas no seu caso. Baixe a madCodeHook ( http://madcodehook.madshi.net ) e veja os exemplos fornecidos pelo autor. É mais fácil do q vc imagina.


Estes links tbm ajudam:

http://help.madshi.net/madCodeHook.htm
http://help.madshi.net/HowToUseMadCodeHook.htm
http://help.madshi.net/HookingRules.htm

[]´s


GOSTEI 0
Crash

Crash

20/05/2005

blz.. sem problema. eu jah usei o MadShi... mais eu quero eh saber qual função da API eu devo aplicar o hook???


GOSTEI 0
Nildo

Nildo

20/05/2005

Olá Crash!

Seguinte, você deve aplicar o Hook em todas as APIs relacionadas a manuseio de arquivos. Lembrando que, para o Win98, o acesso aos arquivos estará liberado via MS-DOS, pois não é possível Hookar aplicações 16 bits com essa biblioteca. Eu só sei que no win98, para bloquear acesso a arquivo e essas coisas, deve-se ancorar as interrupções de manuseio de arquivo. Mas enfim, respondendo a sua pergunta:

Essas são algumas APIs relacionadas a manuseio de arquivo (todas estão na kernel32.dll)

AreFileApisANSI CancelIO CopyFile CopyFileEx CopyProgressRoutine CreateDirectory CreateDirectoryEx CreateFile CreateIoCompletionPort DefineDosDevice DeleteFile FileIOCompletionRoutine FindClose FindCloseChangeNotification FindFirstChangeNotification FindFirstFile FindFirstFileEx FindNextChangeNotification FindNextFile FlushFileBuffers GetBinaryType GetCompressedFileSize GetCurrentDirectory GetDiskFreeSpace GetDiskFreeSpaceEx GetDriveType GetFileAttributes GetFileAttributesEx GetFileInformationByHandle GetFileSize GetFileType GetFullPathName GetLogicalDrives GetLogicalDriveStrings GetQueuedCompletionStatus GetShortPathName GetTempFileName GetTempPath GetVolumeInformation LockFile LockFileEx MoveFile MoveFileEx PostQueuedCompletionStatus QueryDosDevice ReadDirectoryChangesW ReadFile ReadFileEx RemoveDirectory SearchPath SetCurrentDirectory SetEndOfFile SetFileApisToANSI SetFileApisToOEM SetFileAttributes SetFilePointer SetVolumeLabel UnlockFile UnlockFileEx WriteFile WriteFileEx


Funções absoletas:

_hread _hwrite _lclose _lcreat _llseek _lopen _lread _lwrite OpenFile SetHandleCount


Mas não será preciso ancorar todas elas. Se quiser esconder um arquivo, pode ancorar a [b:1fa3682259]FIndFirst A/W[/b:1fa3682259] e [b:1fa3682259]Findnext A/W[/b:1fa3682259]. Mas para proteger, deve-se ancorar as APIs [b:1fa3682259]DeleteFile A/W[/b:1fa3682259], [b:1fa3682259]OpenFile A/W[/b:1fa3682259].

Esses [b:1fa3682259]A/W[/b:1fa3682259] fazem parte do nome das APIs, exemplo: [b:1fa3682259]OpenFileA[/b:1fa3682259] e [b:1fa3682259]OpenFileW[/b:1fa3682259]. As APIs que utilizam estes nomes com A e W no final, existem pelo fato de poderem receber algum tipo de String. para o caso do [b:1fa3682259]A[/b:1fa3682259] o parâmetro é pasado via AnsiString, no caso do [b:1fa3682259]W[/b:1fa3682259], via WideString.

Bom é isso, por enquanto. Qualquer dúvida utilize este tópico que eu respondo.

Um abraço


GOSTEI 0
Crash

Crash

20/05/2005

vlw nildao!!!


GOSTEI 0
Crash

Crash

20/05/2005

Só uma duvida: Eu queria esconder um drive (C: por exemplo) so que somente para visualizacao dos arquivos, Se eu hookar as APIs FindFirstFile e FindNextFile ele nao mostra mais eu tb nao consigo executar por exemplo um programa que está dentro de um diretorio.

t+


GOSTEI 0
Nildo

Nildo

20/05/2005

Só uma duvida: Eu queria esconder um drive (C: por exemplo) so que somente para visualizacao dos arquivos, Se eu hookar as APIs FindFirstFile e FindNextFile ele nao mostra mais eu tb nao consigo executar por exemplo um programa que está dentro de um diretorio. t+


Você consegue executar sim, porém, o windows verifica a existência do arquivo antes de executá-lo.

Não teria lógica você esconder mas permitir que fosse executado


GOSTEI 0
Crash

Crash

20/05/2005

no caso seria executado somente por um atalho no desktop por exemplo.


GOSTEI 0
Crash

Crash

20/05/2005

outra coisa: queria bloquear a criaçao de arquivos.. so que da um erro muito esquisito.

eu declaro uma variavel no meio da rotina, e a criaçao de arquios eh bloqueada... mais o windows cria um arquivo com nome muito esquisito no desktop e algums programas que precisam criar aquivos tb nao conseguem.


GOSTEI 0
Nildo

Nildo

20/05/2005

outra coisa: queria bloquear a criaçao de arquivos.. so que da um erro muito esquisito. eu declaro uma variavel no meio da rotina, e a criaçao de arquios eh bloqueada... mais o windows cria um arquivo com nome muito esquisito no desktop e algums programas que precisam criar aquivos tb nao conseguem.


Mas se você bloqueia a criação de arquivos, com certeza os outros aplicativos não poderão criar também


GOSTEI 0
POSTAR