Criar um simples comparador de hash MD5

1. Criar um simples comparador de hash MD5

Lucas Cota
BrasileiroGamer

(usa Debian)

Enviado em 23/05/2015 - 23:44h

Boa noite,

Então, estou quebrando a cabeça e muito com essa questão. Estou querendo criar um simples comparador de arquivos, um arquivo .txt fixo contém a database com todas as hash MD5 e outro arquivo o usuário informa o diretório juntamente com o nome do arquivo.

Depois de alguma forma queria que o md5sum pegasse o diretório que o usuário informou e criasse o MD5 do arquivo em algum outro para que eu possa compará-lo de modo que se o hash MD5 bater ele execute um comando que irei implementar, na verdade estou querendo criar um simples scanner de malwares para apresentar em um trabalho da minha faculdade, mas não tenho ideia de como fazer o md5sum ler de dentro de um .txt e ainda gravar a hash gerada em um arquivo.

Esse scanner seria arquivo por arquivo e está sendo feito para Windows.

Um exemplo:

md5sum C:/teste.exe

O problema é que no programa quero comparar dois .txts e ver se as hashs batem. Mas não faço ideia de como fazer o md5 ler dentro de um txt, pegar o diretório gravado no txt e mostrar o hash do arquivo e gravar em um outro arquivo a hash gerada para posteriormente realizar a comparação.

Obrigado desde já.


  


2. Re: Criar um simples comparador de hash MD5

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 25/05/2015 - 08:33h

Bom dia.

Para ler arquivos, você utiliza a biblioteca stdio.h, as funções fopen(), fgets() e fclose() irão fazer toda a parte da leitura.

Para computar os Hashs, dê uma olhada no manual de MD5.


man fopen
http://linux.die.net/man/3/fopen

man fgets
http://linux.die.net/man/3/fgets

man fclose
http://linux.die.net/man/3/fclose

man strlen
http://linux.die.net/man/3/strlen

man strcmp
http://linux.die.net/man/3/strcmp

man strncmp
http://linux.die.net/man/3/strncmp

man MD5
http://linux.die.net/man/3/md2

Coloquei as páginas de manual online pra você, já que está no Windows e provavelmente não tem acesso ao manual pelo terminal.
Quanto a parte de ler dois arquivos simultâneamente, você pode criar essa interface a partir dos argumentos da linha de comando:


$ programa arquivo1.txt arquivo2.txt


Um pedaço simples do código de 'programa':

int main (int argc, char *argv[])
{
printf("%s\n", argv[0]); // imprime programa
printf("%s\n", argv[1]); // imprime arquivo1.txt
printf("%s\n", argv[2]); // imprime arquvio2.txt

return 0;
}


A partir disso você consegue criar seu programa.

[]'s
Enzo Ferber


3. Re: Criar um simples comparador de hash MD5

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 25/05/2015 - 10:37h


<stdio.h>
<stdlib.h>
int main( char *argv[ ], int argc ){
char strComand[100];
sprintf(strCommand,"%s","/bin/md5sum argv[1]");
system("strCommand);
return 0;
}


LOL =D







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts