Gerador de wordlist

Publicado por felipe silva (última atualização em 24/08/2016)

[ Hits: 5.138 ]

Homepage: https://bloggospelpro.blogspot.com

Download indexlist.c




Um simples gerador de wordlist em linguagem C. Eu o chamo de indexlist.

  



Esconder código-fonte

#include <stdio.h>
#include <stdlib.h>

int main ()
{   
    long int n1;
    long int n2;
    FILE *pwl;

printf ("**************************************************\n");
printf ("||         seja bem vindo ao indexlist          ||\n");
printf ("|| desenvolvido por Felipe Silva Natividade RJ  ||\n");
printf ("**************************************************\n");
printf ("\n\n\n");

     printf ("inicio: ");
     scanf ("%i", &n1);

     printf ("final: ");
     scanf ("%i", &n2);

pwl = fopen ("passwordlist.txt", "w");

for (n1 = n1; n1 <= n2; n1++){

    printf ("%i\n", n1);
    fprintf (pwl, "%i\n", n1);
}

fclose (pwl);
system ("clear");

printf("***********************************\n");
printf("||passwordlist criada com sucesso||\n");
printf("||   boa sorte em seu pentest ;) ||\n");
printf("***********************************\n");








    return EXIT_SUCCESS;
}

Scripts recomendados

Construindo uma classe de conexão com banco de dados em C# utilizando design pattern Singleton

Funções PosgreSQL - func_pg

Estrutura de serviço

Usando MySQL na linguagem C - Exemplo 3

Aplicativos


  

Comentários
[1] Comentário enviado por dkgentleman em 31/08/2016 - 15:01h

Ola amigo gostei muito do codigo!Bom se me permite lhe dar uma sugestão acho que seria interessante utilizar ao inves do scanf() a questão de argumentos de linha de comando como "-i 9" pelo menos para mim ficaria interessante!

Gostei da sua ideia!


[2] Comentário enviado por lipman em 18/09/2016 - 12:33h


[1] Comentário enviado por dkgentleman em 31/08/2016 - 15:01h

Ola amigo gostei muito do codigo!Bom se me permite lhe dar uma sugestão acho que seria interessante utilizar ao inves do scanf() a questão de argumentos de linha de comando como "-i 9" pelo menos para mim ficaria interessante!

Gostei da sua ideia!




Olá amigo, gostei da sua ideia mas por enquanto não possuo conhecimento o bastante para fazer isso...
Talvez eu aprendendo mais, eu faça em uma atualização futura.
Abraços!

[3] Comentário enviado por paulo1205 em 19/10/2016 - 09:45h

Além de ter utilidade limitada, duplicando de forma piorada aquilo que se pode fazer com o comando “seq“, esse programa possui diversos erros e práticas de programação ruins.


Exemplo de erros:

- Declaração inadequada da função main -- deveria ser “int main(void)”, já que o programa não recebe argumentos pela linha de comando (se os recebesse, deveria ser “int main(int argc, char **argv)”.

- Conversões de scanf() incompatíveis com os tipos de dados das variáveis que devem receber os valores lidos.

- Mesmo erro nas chamadas a printf() e fprinf().

- Se a conversão de scanf() estivesse correta, ainda haveria a chance de o laço de repetição nunca acabar. Se o valor digitado for igual ao maior long int possível e esse valor for atribuído a n2, por definição a comparação “n1<=n2” será sempre verdadeira.


Exemplos de hábitos ruins:

- Não se testam os valores de retorno das chamadas a scanf(), de modo que n1 e n2 pode chegar com valores desconhecidos ao laço de repetição (por exemplo, se o usuário digitar uma letra em vez de um valor numérico).

- Se acontecer o problema mencionado acima, o restante da execução do programa fica imprevisível. Com sorte, o loop pode terminar sem executar nenhuma iteração (n1>n2); com azar, pode nunca acabar (n2==LONG_MAX). Depender de sorte, em qualquer programa, é o fim da picada.

- Também não se testam os resultados das operações de escrita. De fato, é bem menos comum fazer isso mas, a rigor, também as operações de escrita deveriam ser verificadas quanto a possíveis erros, especialmente num programa que gera um arquivo como saída. Só não devem se verificar se as operações de escrita foram bem sucedidas programas que não se importem de perder dados ou de entregar ao usuário algo diferente daquilo que ele pediu..

- A atribuição “n1=n1” não chega a ser um erro, mas é inútil. Sendo inútil, deveria ser removida. A sintaxe do comando permite essa remoção.

- Contudo, se você quiser evitar o possível loop infinito, possivelmente não deve usar o comando for, mas talvez uma combinação de if com do-while.

- Chamar system() para uma operação trivial como limpar a tela é um tremendo desperdício. Se limpar a tela FOSSE absolutamente NECESSÁRIO para o programa, a funcionalidade deveria residir no programa, ainda que através de uma biblioteca padronizada como Curses ou algum clone da ConIO.

- Chamar system() também é um tremendo furo de segurança, ainda mais quando você não diz o caminho exato do comando a ser executado. Se o usuário possui algum script chamado “clear” num diretório local que esteja presente no valor da variável de ambiente PATH, esse script pode acabar sendo chamado, em vez do utilitário do sistema que você esperava que fosse chamado.

- 34,48% da extensão do programa (10 de 29 linhas contendo texto) são usadas com créditos e outras firulas.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts