Aide - Recherche - Membres - Calendrier
Version complète : Register code
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Destino
Salut à tous,
j'aimerai juste savoir comment fait-on pour mettre en place un "Register code" dans son application, pour éviter le hack de l'application.
Merci
olivier101
Il y a plusieurs possibilités...

-certaines applis acceptent un code ou un ensemble de codes fixes. Inconvénient: risque de diffusion de ces codes, puisqu'ils marchent indépendamment de la machine. Avantage: assez facile à mettre en oeuvre

-la manière la plus répandue semble être de se baser sur le nom de hotsync pour générer un code via un algorithme mathématique. Le programme palm vérifie la cohérence entre le nom de hotsync et le code. Inconvénient: il faut prévoir un moyen de fournir un nouveau code à l'utilisateur qui change de hotsync ID

-ou encore, on peut se baser sur un identifiant matériel propre à chaque palm et accessible de façon standard via l'API Palm OS, au lieu de la hotsync ID.

En cherchant un peu sur le web tu trouveras surement des exemples d'implémentation.
Destino
La 3e possibilité me semble pas mal. je vais essayer de voir sur la Base de connaissance de palmos.com s'il ont un exemple d'implémentation d'un "register code"
Patrice
Le code lié à l'identifiant de la ROM est pénible pour l'utilisateur : il faut en redemander un chaque fois qu'on change de machine. Sans compter que sur les anciens Palm (OS<3.5, il me semble), il n'existe pas.

Le code lié au user de synchro n'est pas recommandé par palmOne (entre autres) car avec le développement des smartphones, les utilisateurs n'utilisent plus nécessairement les fonctions de synchro. Donc pas d'ID...
Destino
en résumé, laquelles des methodes pour implémenter un code vous semble la meilleur ?
Corto
Va voir sur le site de Ardiri, il a du code pour çà qui semble assez difficile à contrer.
Destino
je ne vois pas de code sur le site ardiri.com qui pourra m'aider à générer des "codes registers" pour mon appli.
Corto
Alors je ne sais plus où il l'a mis. Je sais que c'est du code à lui, mais comme il participe à beaucoup de forum, peut-être qu'il l'avait posté.
En gros l'idée était de mettre des morceaux de code dans des sections et de les supprimer à une certaine date. L'application se retrouvait ainsi troncqué.
Mais je ne me souviens plus du comment.
snark
Ardiri: jCode
Patrice
jCode, c'est le côté "serveur" de la chose. Pour le côté Palm, il faut aller chercher RegCode sur PalmGear...
Destino
J'utilise une appli qui me donne un RegID de cette forme:
5F:8B:AB:43:xx:xx:xx:xx.

j'aimerai donc savoir comment fait-on pour obtenir ce N° dans mon appli.
Car j'aimerai l'utiliser pour créer mon register code
Destino
comment obtenir un identifiant matériel propre à chaque palm PLEASE ?
olivier101
Un petit conseil: une petite recherche google est souvent plus payante qu'une bouée à la mer dans un forum....
En l'occurence, si tu cherches "palm device rom serial", le premier lien qui sort est le bon... rolleyes.gif
Destino
Quelqu'un peut-il me dire ce qui ne va pas avec ce code?
Car qd je regarde le contenu de bufP, j'ai des caractères bizar

CODE
Char bufP[255];

  UInt16 bufLen;

  Err retval;

  Int16    count,x,y; x=y=0;

  UInt8    checkSum;

  Char    checksumStr[2];

     // holds the dash and the checksum digit

 

  retval = SysGetROMToken (0, sysROMTokenSnum,(UInt8**)&bufP, &bufLen);

  if ((!retval) && (bufP) && ((UInt8) *bufP != 0xFF))

  {

     // there's a valid serial number!

     // Calculate the checksum:  Start with zero, add each digit,

     // then rotate the result one bit to the left and repeat.

        checkSum = 0;

        for (count=0; count<bufLen; count++)

        {

           checkSum += bufP[count];

           checkSum = (checkSum<<1) | ((checkSum & 0x80) >> 7);

        }

     // Add the two hex digits (nibbles) together, +2

     // (range: 2 - 31 ==> 2-9, A-W)

     // By adding 2 to the result before converting to ascii,

     // we eliminate the numbers 0 and 1, which can be

     // difficult to distinguish from the letters O and I.

     checkSum = ((checkSum>>4) & 0x0F) + (checkSum & 0x0F) + 2;

 

     // draw the serial number and find out how wide it was

     WinDrawChars(bufP, bufLen, x, y);

     x += FntCharsWidth(bufP, bufLen);

 

     // draw the dash and the checksum digit right after it

     checksumStr[0] = '-';

     checksumStr[1] =((checkSum < 10) ? (checkSum +'0'):(checkSum -10 +'A'));

     WinDrawChars (checksumStr, 2,x,y);

  }

    else // there's no serial number

        WinDrawChars("noNumberMessage",15,x, y);
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.