VERte][
15.08.2007, 23:52
Писал сам, так что не бейте), да и вообще это моя первая более менее полезная программка. Работает в двух режимах: простая генерация по диапозону, и генирирование по маскам xyza, xyz, xy. Написана на С++.
(PS. Фильтрации нет так как пока это не изучил, и потому что вообщем-то делал для себя). Может кому пригодится (так же начинающим как и я).
Сообственно код:
//Генератор uin;pass
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
using namespace std;
void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void input(char pass[],int& uin_start, int& uin_fin);
int main()
{
int uin_start, uin_fin, select1, select2;
char pass[9], select;
ofstream outs;
//Открываем файл
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
//Закрываем файл
outs.close();
//Выбор метода генерирования
cout<<"Select generic type:"<<endl;
cout<<":::1)Range of uins"<<endl<<":::2)Masks (xyza, xyz, xy)"<<endl<<">";
cin>>select1;
switch (select1)
{
case 1:
{
input(pass, uin_start, uin_fin);
diapoz(pass, uin_start, uin_fin, outs);
break;
}
case 2:
{
cout<<setw(8)<<"1)xyza"<<endl<<setw(7)<<"2)xyz"<<endl<<setw(6)<<"3)xy"<<endl<<">";
cin>>select2;
if (select2==1)
{
input(pass, uin_start, uin_fin);
xyza(pass, uin_start, uin_fin, outs);
}
if (select2==2)
{
input(pass, uin_start, uin_fin);
xyz(pass, uin_start, uin_fin, outs);
}
if (select2==3)
{
input(pass, uin_start, uin_fin);
xy(pass, uin_start, uin_fin, outs);
}
break;
}
}
return (0);
}
//Ввод данных
void input(char pass[], int& uin_start, int& uin_fin)
{
cout<<"Input password: ";
cin>>pass;
cout<<"Input first uin: ";
cin>>uin_start;
cout<<"Input last uin: ";
cin>>uin_fin;
}
//Генерирование по диапазону
void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
do
{
outs<<uin_start<<";"<<pass<<endl;
uin_start++;
} while (uin_start<=uin_fin);
outs.close();
}
//Генерирование по маске xyza
void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==4)||(count==3)||(count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
//Генерирование по маске xyz
void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==3)||(count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
//Генерирование по маске ху
void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt", ios::app);
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
Сама программка: http://stream.ifolder.ru/3017783
PS. Огромное спаcибо AdvLamer'y за советы и помощь в отладке.
(PS. Фильтрации нет так как пока это не изучил, и потому что вообщем-то делал для себя). Может кому пригодится (так же начинающим как и я).
Сообственно код:
//Генератор uin;pass
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
using namespace std;
void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs);
void input(char pass[],int& uin_start, int& uin_fin);
int main()
{
int uin_start, uin_fin, select1, select2;
char pass[9], select;
ofstream outs;
//Открываем файл
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
//Закрываем файл
outs.close();
//Выбор метода генерирования
cout<<"Select generic type:"<<endl;
cout<<":::1)Range of uins"<<endl<<":::2)Masks (xyza, xyz, xy)"<<endl<<">";
cin>>select1;
switch (select1)
{
case 1:
{
input(pass, uin_start, uin_fin);
diapoz(pass, uin_start, uin_fin, outs);
break;
}
case 2:
{
cout<<setw(8)<<"1)xyza"<<endl<<setw(7)<<"2)xyz"<<endl<<setw(6)<<"3)xy"<<endl<<">";
cin>>select2;
if (select2==1)
{
input(pass, uin_start, uin_fin);
xyza(pass, uin_start, uin_fin, outs);
}
if (select2==2)
{
input(pass, uin_start, uin_fin);
xyz(pass, uin_start, uin_fin, outs);
}
if (select2==3)
{
input(pass, uin_start, uin_fin);
xy(pass, uin_start, uin_fin, outs);
}
break;
}
}
return (0);
}
//Ввод данных
void input(char pass[], int& uin_start, int& uin_fin)
{
cout<<"Input password: ";
cin>>pass;
cout<<"Input first uin: ";
cin>>uin_start;
cout<<"Input last uin: ";
cin>>uin_fin;
}
//Генерирование по диапазону
void diapoz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
do
{
outs<<uin_start<<";"<<pass<<endl;
uin_start++;
} while (uin_start<=uin_fin);
outs.close();
}
//Генерирование по маске xyza
void xyza(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==4)||(count==3)||(count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
//Генерирование по маске xyz
void xyz(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt");
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==3)||(count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
//Генерирование по маске ху
void xy(char pass[], int& uin_start, int& uin_fin, ofstream& outs)
{
int count(0), i, uin[10]={0,0,0,0,0,0,0,0,0,0} , numb, delit(100000000);
outs.open("list.txt", ios::app);
if (outs.fail())
{
cout<<"Output file opening failed.";
exit(1);
}
for (uin_start; uin_start<=uin_fin ;uin_start++)
{
while(delit>=10)
{
numb=uin_start/delit;
delit/=10;
if (numb>0)
{
uin[numb]++;
break;
}
}
while(delit>=1)
{
numb=(uin_start/delit)%10;
delit/=10;
uin[numb]++;
}
for (i=0; i<10; i++)
{
if (uin[i]>0)
count++;
}
if ((count==2) || (count==1))
{
outs<<uin_start<<";"<<pass<<endl;
}
count=0;
delit=100000000;
for (i=0; i<10; i++)
{
uin[i]=0;
}
}
outs.close();
}
Сама программка: http://stream.ifolder.ru/3017783
PS. Огромное спаcибо AdvLamer'y за советы и помощь в отладке.