Programma permutazioni?!?

di il
5 risposte

Programma permutazioni?!?

Ciao a tutti, ho trovato online un programmino in c++ che dovrebbe servire per generare wordlist per gli omonimi attacchi, quindi mi servirebbe che realizzasse tutte le possibili permutazioni. Purtroppo però non funziona come dovrebbe, ovvero dando come input "simboli da utilizzare" abcdefghijklmnopqrstuvwxyz e come input minimo e massimo di caratteri 8 8 effettua le permutazioni solo dei primi 8 caratteri, ignorando i seguenti. Eccovi il codice:
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
 using namespace std;

 ofstream output;

 bool doppio(char combinazione[],int n)
{
  for(int i=0;i<n;i++)
   for(int k=0;k<n;k++)
    if(i!=k && combinazione[i]==combinazione[k])
     return true;   
  return false;
 
}

void permutazioni(char caratteri[],int n)
{ 
  int numero=0;
  int conta[n];
  char combinazione[n];
  for(int i=0;i<n;i++)
   conta[i]=0;
    
  while(conta[0]!=n) {

  for(int i=0;i<n;i++)
    combinazione[i]=caratteri[conta[i]];

   
  if(!doppio(combinazione,n)) { 
   for(int i=0;i<n;i++)
    output << combinazione[i];
    output << endl;
    numero++;
  }
  conta[n-1]++;
  for(int i=n-1;i>=1;i--) {
    if(conta[i]==n)
     {
      conta[i]=0;
      conta[i-1]++;
      }         
    }                 
  }
}

void usage() 
{
  cout << "EXAMPLE " << endl << "./generatore abcdefg 1 10\n";
  exit(1);
}

int main(int argc,char *argv[])
{
    getchar();
  getchar();
  if(argc!=4)
   usage();
  output.open("dizionario2.txt");
  for(int i=atoi(argv[2]);i<=atoi(argv[3]);i++)
   permutazioni(argv[1],i);
  output.close();
  system("pause");
return 0;
}
Consigli? Soluzioni?

5 Risposte

  • Re: Programma permutazioni?!?

    Potresti spiegarti meglio? in che modo devono essere effettuate le permutazioni? un 'simbolo' fra quelli possibili può essere contenuto più volte o no nella parola? (ad esempio sono consentite permutazioni del tipo 'xxy' con 'xy' dati? )
  • Re: Programma permutazioni?!?

    Serve per creare una wordlist per attacchi wordlist appunto xD tutte le possibili combinazioni, si, può essere contenuto più volte
  • Re: Programma permutazioni?!?

    Per caso devi 'bypassare' qualche rete? se si allora mi dispiace ma non posso continuare ad aiutarti.
  • Re: Programma permutazioni?!?

    No, devo testare i tempi eventuali sulla mia, se volessi bypassarla di certo non userei attacchi wordlist ma bruteforce, come tempi stiamo la e occupa MOLTO meno spazio
  • Re: Programma permutazioni?!?

    Beh, allora posso dirti che l'implementazione non è semplice. Innanzitutto credo che a te non servano delle 'permutazioni' ma più che altro 'combinazioni'. dato che la lunghezza della parola cambia. Sinceramente proverei a vedere meglio la definizione matematica delle due, così che potresti tradurlo poi in un algoritmo.
Devi accedere o registrarti per scrivere nel forum
5 risposte