Domanda Reversing Aiuto a capire questo codice , come preparare o creare un Keygen valido

Elreys

Utente Bronze
7 Dicembre 2016
35
7
1
41
Ultima modifica da un moderatore:
Carissimi inforgeTeam,

e da un po che non scrivo su questo stupendo forum con leggende viventi :), come EVO ...
Chi mi puo dare una dritta capire come poter creare un valido seriale per questa applicazione, come vedete ho anche il codice, ho provato a generare qualcosina in powershell , ma non vengo a capo delle ultime due validazioni, ecco qui il source.

Codice C++

Codice:
    char password[7];

    int i = 1;

    while (i == 1)

    {

    printf("Please Enter a password ");

    fgets(password, 7, stdin);

     

    password[0] = (password[0] + 121) / 2;                // ends up = 'v' 118

    password[1] = (((password[1] + password[0]) * 2) / 3) - 30;  //  //ends up = 't' 116

    password[2] = 101;      //ends up = 'e' 101

    password[3] = (((password[3] + password[1]) + 1) / 2);    // ends up = 's' 115

    password[4] = (((password[4] + password[3] + password[0]) + 2) / 3);  //ends up = 'p' 112

    password[5] = (((password[5] + password[4]) / 2));      // ends up = 'r' 114



    if (password[0] == 118 && password[1] == 116 && password[2] == 101 && password[3] == 115 && password[4] == 112 && password[5] == 114)

    {

        printf("good job");

        i = 0;

    }

    else

    {

        printf("Not quite\n");

        printf("After conversion your input looks like ");

        printf("%c%c%c%c%c%c", password[0],password[1],password[2],password[3],password[4],password[5]);

        printf("\nTry again\n");

    }

    }

    return 0;

KeyGen in Powershell:
Codice:
    char password[7];

    int i = 1;

    while (i == 1)

    {

    printf("Please Enter a password ");

    fgets(password, 7, stdin);

     

    password[0] = (password[0] + 121) / 2;                // ends up = 'v' 118

    password[1] = (((password[1] + password[0]) * 2) / 3) - 30;  //  //ends up = 't' 116

    password[2] = 101;      //ends up = 'e' 101

    password[3] = (((password[3] + password[1]) + 1) / 2);    // ends up = 's' 115

    password[4] = (((password[4] + password[3] + password[0]) + 2) / 3);  //ends up = 'p' 112

    password[5] = (((password[5] + password[4]) / 2));      // ends up = 'r' 114



    if (password[0] == 118 && password[1] == 116 && password[2] == 101 && password[3] == 115 && password[4] == 112 && password[5] == 114)

    {

        printf("good job");

        i = 0;

    }

    else

    {

        printf("Not quite\n");

        printf("After conversion your input looks like ");

        printf("%c%c%c%c%c%c", password[0],password[1],password[2],password[3],password[4],password[5]);

        printf("\nTry again\n");

    }

    }

    return 0;
 
Matematica da prima media:
Codice:
password[0]
  (x + 121) / 2 = 118
  x + 121 = 236
  x = 236 - 118 = 108

password[1]
  ((x + 108) * 2 / 3) - 30 = 116
  2x + 216 - 90 = 116 * 3
  2x = 348 + 90 - 216
  x = 222 / 2 = 111

password[2]
  101
Vuoi provare ad andare avanti tu?