Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Gerador de WordLists

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Gerador de WordLists

    E aí gente. Blz? Resolvi dá uma pequena contribuição ao fórum GH. O programa não é muito sofisticado, ele gera um lista de combinações possíveis e salva em um arquivo de texto.

    Código:
    /*
    Autor: Pegazux
    Email: pegazux1@gmail.com
    WordList.c
    
    Compilação:
      Linux: gcc WordList.c -o WordList
                ./WordList
      Windows: recomendo o IDE Falcon C++, ele já vem o com o mingw.
    
      Modo de uso, quando for executado especifique: min max charset
      ex: 3 5 abcde1234
      
      Obs: o charset não pode ser separado com espaços;
    */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>
    
    void atualizar(char *aBuff, char *aCharSet, int index){
    	int lenCS = strlen(aCharSet)-1;
    	char *atual = NULL;
    	if(aBuff[index] != aCharSet[lenCS]){
    		atual = strchr(aCharSet, aBuff[index]);
    		aBuff[index] = *(atual+1);
    	}else if(index > 0){
    		aBuff[index] = aCharSet[0];
    		atualizar(aBuff, aCharSet, index -1);
    	}
    }
    
    void processar(int min, int max, char *charset){
    	int i, j, lenCharSet = 0, lenWordList = 0;
    	char *buff = NULL, *end = NULL, *index = NULL;
    	FILE *outFile = NULL;
    	
    	outFile = fopen("WordList.txt", "w+");
    	
    	if(outFile){
    		for(j = min; j <= max; j++){
    			end =  (char*)calloc(j+1, sizeof(char));
    			buff = (char*)calloc(j+1, sizeof(char));
    		
    			lenCharSet = strlen(charset);
    			lenWordList = j;
    	
    			end[lenWordList-1] = '\0';
    			buff[lenWordList-1] = '\0';
    	
    			for(i = 0; i < lenWordList; i++){
    				buff[i] = charset[0];
    				end[i] = charset[lenCharSet - 1];
    			}
    			fprintf(outFile, "%s\n", buff);
    			do{
    				atualizar(buff, charset, lenWordList -1);
    				fprintf(outFile, "%s\n", buff);
    			}while(strcmp(buff, end) != 0);
    			free(buff);
    			free(end);
    		}
    		fclose(outFile);
    	}else{
    		printf("Falha ao criar arquivo.\n");
    	}
    }
    
    int main(void){
    	int min = 0, max = 0;
    	char charSet[256];
    	setlocale(LC_ALL, "portuguese");
    	scanf("%i %i %255s", &min, &max, charSet);
    	if(min <= max && max > 0 && strlen(charSet) > 0){
    		printf("Processando... Por favor, aguarde.");
    		processar(min, max, charSet);
    		printf("\nConcluído\n");
    	}else{
    		printf("Valores inválidos\n");
    	}
    }
    Em breve, estarei postando um quebra senha rar e zip. Abs.
    Attached Files
    Similar Threads
X
Working...
X