Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Исходник генератора uin;pass (https://forum.antichat.xyz/showthread.php?t=46815)

VERte][ 15.08.2007 23:52

Исходник генератора uin;pass
 
Писал сам, так что не бейте), да и вообще это моя первая более менее полезная программка. Работает в двух режимах: простая генерация по диапозону, и генирирование по маскам 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 за советы и помощь в отладке.

biophreak 16.08.2007 13:52

Извини конечно, но зачем на сях, тем более на плюсах писать простой генератор?
Имхо быстрее, удобнее и , тем более, кросс-платформеннее ;) будет написать его на перле или питоне....

VERte][ 16.08.2007 16:07

Если тебе надо - пожалуйста пиши и выкладывай, тебе будут благодарны) Я кроме бэйсика изучаемого в школе, и с++ изучаемого самостоятельно ничего не знаю, если бы знал и это было удобнее то конечно бы написал...

Lesnoy_chelovek 16.08.2007 17:19

Vertexe, могу дать следующие ломашнее задание. Гненратор вида логин;пароль, здесь будет посложнее. Я серьезно.

VERte][ 16.08.2007 17:27

В смысле??? а что меняется? к одному логину несколько паролей из файла?

Lesnoy_chelovek 16.08.2007 22:35

Просто набор вида:
Код:

aaa:pass
aab:pass
aac:pass

и так далее.
Но вот так что бы длина логина хотя бы до 32. Смогешь?

VERte][ 16.08.2007 22:42

хех, а символы в логине любые или только буквы?
Вообщем уточни полностью задание со всеми нюансами, и я за него сразу приймусь, как изучу некоторые методы работы с массивами и как работать со строковыми данными.

Lesnoy_chelovek 16.08.2007 22:58

ну, пусть будут любые (:


Время: 11:35