Réal Basic peut-il faire ça ?

  • Créateur du sujet Créateur du sujet armen2b
  • Date de début Date de début

armen2b

Membre confirmé
13 Avril 2007
38
1
Salut à tous
Voilà mon problème:
J'ai développé, sur Mac, avec réalBasic une application conçue pour tourner sur PC. Cette appli est placée sur une clé USB et se lance via cette clé. Jusque là pas de problème. Mais cette appli doit fonctionner avec des restrictions assez sévères. Seule une clé peut être reconnue par le PC hôte et inversement, un seul PC doit faire tourner l' appli.
Dans un premier temps, sur un PC (beurk) et avec MSDN (rebeurk) j'ai écris un programme lisant le sérialNumber de la clé insérée et celui du disque dur du PC. Ainsi tout est OK mais ça m'oblige a avoir des applis résidentes sur le PC. Et à jongler avec diverses compilations quand je veux équiper un nouveau PC avec une nouvelle clé. (voire à recompiler quand je veux adapter une nouvelle clé sur un PC déjà "répertorié". Ma question est donc comment en partant du Mac (ah je revis) peut-on en RéalBasic lire les SN des médias (DD et clé USB).
Voilà.
Merci, et au plaisir d'une bonne nouvelle.
 
Encore moi. Et si on ne peut pas, quelle est la méthode pour rajouter à RealBasic une "ressource externe" ecrite en C et qui autoriserait la chose, tout en gardant à l'esprit que la compilation finale, doit tourner sur un PC, bien que le source soit écrit sur un Mac?
Et le premier qui me dit : fais tout à partir d' un PC, je ne lui parle plus. Fachés on sera ?
Amitiés.
 
Encore moi. Et si on ne peut pas, quelle est la méthode pour rajouter à RealBasic une "ressource externe" ecrite en C et qui autoriserait la chose, tout en gardant à l'esprit que la compilation finale, doit tourner sur un PC, bien que le source soit écrit sur un Mac?
Et le premier qui me dit : fais tout à partir d' un PC, je ne lui parle plus. Fachés on sera ?
Amitiés.


le SN tu comptes le stocker comment sur la clé?
Si c'est un fichier txt, tu devrais pouvoir le lire(en obj-c ou autre c'est sur, mais en RB je ne connais rien du tout).

Mais tes restrictions sont bien sévères, n'y aurait il pas moyen d'alléger tes protections, du moins pour un temps? En fait, je pense que la difficulté vient que tu souhaites blinder sur les deux systèmes.

sinon, je pense que la solution la plus viable est de développer un module particulier gérant la protection. Tu aurais ton coeur d'application qui serait commun au deux système, et deux modules (un pour le mac et un autre pour windows) qui exploiterez les méthodes les plus "sécurisées" de chacun des systèmes.
 
Bonsoir
Et merci Tarul de ta réponse.
En fait je ne souhaite rien protéger sur le Mac, mais uniquement sur PC. (J'aime trop ma bécane et ses utilisateurs !).
Le numéro SN de la clé est accessible dans quelques octets protégés de la RAM et sur le disque dur dans les secteurs réservés au fabriquant. Bon nombre d'outils permettent d'y accéder. Grâce à MSDN (c'est y pas malheureux tout de même !) on peut y accéder, par l'intermédiaire de la bibliothèque "FileSystemObject". Une fois ces données collectées, je les "embrouille" à ma façon et les sauve sur un fichier de quelques octets que je range sur la clé ou dans un dossier de Windaube. Tout cela fonctionne relativement bien. Relativement parce qu'à chaque nouvel utilisateur, ou nouvelle clé, je dois repasser par un compilation du source en MSDN. Et c'est cela, qui me donne et des boutons, et des envies de meurtre. C'est pourquoi j'aimerais bien tout faire à partir du Mac. Et pour ce qui en est de la méthode d'ajout de commande nouvelle à RealBasic, as-tu une idée ?
Merci de ta réponse aussi rapide et bonne soirée.
 
Bonsoir
Et merci Tarul de ta réponse.
En fait je ne souhaite rien protéger sur le Mac, mais uniquement sur PC. (J'aime trop ma bécane et ses utilisateurs !).
Le numéro SN de la clé est accessible dans quelques octets protégés de la RAM et sur le disque dur dans les secteurs réservés au fabriquant. Bon nombre d'outils permettent d'y accéder. Grâce à MSDN (c'est y pas malheureux tout de même !) on peut y accéder, par l'intermédiaire de la bibliothèque "FileSystemObject". Une fois ces données collectées, je les "embrouille" à ma façon et les sauve sur un fichier de quelques octets que je range sur la clé ou dans un dossier de Windaube. Tout cela fonctionne relativement bien. Relativement parce qu'à chaque nouvel utilisateur, ou nouvelle clé, je dois repasser par un compilation du source en MSDN. Et c'est cela, qui me donne et des boutons, et des envies de meurtre. C'est pourquoi j'aimerais bien tout faire à partir du Mac. Et pour ce qui en est de la méthode d'ajout de commande nouvelle à RealBasic, as-tu une idée ?
Merci de ta réponse aussi rapide et bonne soirée.

Je comprend mieux, mais je ne pourrais pas t'aider plus. Je ne connais rien a cet environnement de développement.

Si l'anglais ne te fais pas peur, le mieux est d'aller faire un tour sur leur forum/mailling list.
 
Ben, voilà, j' ai trouvé
Sub litSerial
dim LaChaine,number,macAddress as string
Dim ni as NetworkInterface
Dim s As Shell
dim count1,count2,i as integer
// retourne l'adresse mac de l'ordinateur (théoriquement unique)
ni = System.GetNetworkInterface
#if TargetWin32
macAddress=ni.MacAddress
if macAddress<>"00:0A:94:01:50:6B" then quit // //si l' ordi n'est pas le bon

// execute la commande Dir du DOS et dans ce directory, on trouve le numero de serie
// du media (cl&#233; ou DD) ainsi que sa capacit&#233; et le nombre de fichiers et directory
s=New Shell
s.execute "dir"
If s.errorCode = 0 then
LaChaine=s.result
count1= InStrB(LaChaine,"8279-0FDB") //les numeros de serie
count2= InStrB(LaChaine,"C08B-0522") //des cles autoris&#233;es
if (count1=0 and count2=0) then quit //si ce ne sont pas les bonnes cl&#233;s
end if
#endif
endSub