KeyGenME Hard Crackme

Статус
В этой теме нельзя размещать новые ответы.
  • 112
  • 92
Контакты для связи отсутствуют.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Этот крякми довольно тяжелый был для меня
Из-за того,что я не мог придумать как записать алгоритм для автоматической шифровки. Руками то я мог подобрать,но придумать алгоритм чё то никак. Потом посмотрел как человек записал этот алгоритм, в итоге тоже ничего не понял. Потом,спустя дня 3, решил ещё раз попробовать. Тоже никак,но думаю: "А что если просто взять и по его алгоритму сделать свой пароль. Сначала получались какие то цифры, я даже не думал,что в итоге получиться валидный пароль. Потом, на последним действии он совпал с моим паролем,который я подбирал руками. Немного подумав, я понял что к чему.
Так что думайте)
Патчить нельзя. Только валидный пароль.
 

Вложения

  • keygenme.rar
    24.4 KB · Просмотры: 12
  • 28
  • 3
  • 42
Валидные данные:
Name: Arting
Key: 5B-79-28-27

keygen_bc1_ARkFZSredf.png

vmware_aGuH6Ld4Dv.png


Код кейгена:

C++:
int enc_seed = 0;

int generate_seed_from_name( const wchar_t* name )
{
    wchar_t v2 = 0; // [rsp+20h] [rbp-28h]
    int v3 = 0; // [rsp+24h] [rbp-24h]
    int v4 = 0; // [rsp+28h] [rbp-20h]

    v4 = 0;
    v3 = 0;
    while ( v3 < 0x1E && *name )
    {
        v2 = *name;
        if ( iswctype( *name, 0x103u ) )
        {
            v4 += towupper( v2 );
            ++v3;
        }
        ++name;
    }
    return v4;
}

int calc_seed()
{
    enc_seed = ( 0x41C64E6D * enc_seed + 0x3039 ) % (int)0x80000000;
    return enc_seed;
}

const char ch[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };

int R10( std::string s ) // перевод строки в 10-ое число
{
    int base = 1,
        res = 0;
    while ( s.size() )
    {
        res += base * ( (int)s[s.size() - 1] - '0' );
        s.resize( s.size() - 1 );
        base <<= 1;
    }
    return res;
}

std::string R16( int n ) // перевод числа в 16 представление
{
    std::string s;
    while ( n )
    {
        s.insert( s.begin(), ch[n % 16] );
        n /= 16;
    }
    return s;
}


void generate_key()
{
    std::cout << "Key: ";
    for ( int i = 0; i < 4; ++i )
    {
        std::string r2_str;
        for ( int j = 0; j < 7; ++j )
        {
            int op = ( calc_seed() >> 6 ) & 1;
            r2_str += std::to_string( op ); // Создаём строку с двоичным числом
        }
        std::cout << R16( R10( r2_str ) ); // Переводим строку с двоичным числом в шестнадцатеричное число
        if ( i != 3 )
            std::cout << "-";              // Добавляем разделитель
    }
    std::cout << std::endl;
}


int main()
{
    std::wstring name;

    std::wcout << "Enter name: ";
    std::getline( std::wcin, name );
   
    enc_seed = generate_seed_from_name( name.c_str() ); // Генерируем сид из имени
    calc_seed();
    generate_key();
    _getch();
}

Сам кейген:
 
Последнее редактирование:
  • 112
  • 92
Контакты для связи отсутствуют.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Валидные данные:
Name: Arting
Key: 5B-79-28-27

Посмотреть вложение 7629
Посмотреть вложение 7630

Код кейгена:
### Скрытое содержимое ###

Сам кейген:
### Скрытое содержимое ###
Да,все верно. Поздравляю. Также можно было сделать по такому алгоритму.
В начале:
int t;
После первого for
t = 0;
После второго for
t = t << 1 | (calcseed() >> 6 & 1);
symbol= ToString(t); // предположим что она конвертирует число в строку. Например ,у нас число t = 50, значит symbol = "50";
Алгоритм не мой, если будет интересно - можешь разобрать)
Но твой тоже подходит, т.к пароль верный)
Оцени крякми пожалуйста.

Добавлено
Почему то форум воспринимает " [ i ] " как курсив. После symbol идет вот то,что я написал
 
  • 28
  • 3
  • 42
Да,все верно. Поздравляю. Также можно было сделать по такому алгоритму.
В начале:
int t;
После первого for
t = 0;
После второго for
t = t << 1 | (calcseed() >> 6 & 1);
symbol= ToString(t); // предположим что она конвертирует число в строку. Например ,у нас число t = 50, значит symbol = "50";
Алгоритм не мой, если будет интересно - можешь разобрать)
Но твой тоже подходит, т.к пароль верный)
Оцени крякми пожалуйста.

Добавлено
Почему то форум воспринимает " [ i ] " как курсив. После symbol идет вот то,что я написал
[ i ] - это BB код курсива.

6/10
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу