Page 1 sur 2

Créer une empreinte a un programme [Résolu]

Publié : jeu. 26/mars/2009 13:35
par Kwai chang caine
Bonjour a tous

Je voudrais que un de mes programmes reconnaisse a coups sur ces petits, savoir si "y" sont de la "famille"

Pourquoi me direz vous, comme ça si un clampin change le nom du programme, et ben ça je le reconnais quand meme :D
Aussi et surtout pour la gestion des versions.

Un peu comme les programmeurs de PB....on peut pas se tromper on est tous beau, drole , intelligent, propre, gentil.....enfin on est de la famille quoi, et on se reconnait d'un coup d'oeil :D

Bah la meme chose sauf que mon programme, il a pas d'oeil :?
Y pourrait emprunter celui de CHRIS, mais il en a encore surement besoin :roll:

J'ai pensé a la methode de passer un parametre a l'executable qui declenche une procedure, mais comment récuperer mon empreinte ??

A part ça, avec le partage de mémoire, les pipes etc ...j'ai peur que ce soit compliqué.

Je peut aussi créer un txt temporaire que je lis avec le parent en retour

Ou bien utiliser le presse papier, aussi....

Enfin y'a pas mal de methode...

Mais j'ai pensé aussi a mettre en DATA a la fin de chacun de mes progs, la meme sequence, et voir meme encore plus fort de café, une empreinte qui l'identifie dans ma famille, donc le nom de famille, et son prenom c'est a dire le nom du sous programme.

Exemple marcel PROUST, ....

PROUST n'etant dans cette configuration, pas un petit bruit dissimulé, qui precede une odeur plus ou moins nauséabonde....mais le nom de la famille et marcel le nom de ce programme.
Donc marcel v1.0 :lol: par exemple.

Mais voila....y'a t'il un moyen sur et imparable d'ecrire mon empreinte toujours au meme endroit de mes programmes.
En un mot est ce que si je met dans mon code mes data a la fin, je les trouverais toujours a la fin, et donc je saurais qu'il suffit de lire les X derniers octets de mes programmes pour recuperer mon empreinte. :D

Je vous remercie de m'avoir lu...
Si vous avez d'autres idées plus simples.

Ou bien si vous pouvez me rassurer sur cette histoire de position de DATA.

Je vous rappelle mon numero
3615 KCC :lol:

Merci de votre aide et bonne journée

Publié : jeu. 26/mars/2009 14:01
par Cls
Salut KCC,

pourquoi ne pas utiliser l'empreinte MD5 du fichier avec MD5FileFingerprint() ?

Edit : Ok je vois que tu veux toujours mettre la même... Ton idée de renvoyer un code précis lorsque tu passes un paramètre spécial au programme est très simple à mettre en place. Par exemple quand tu passes "/familly" tu peux faire un End XXX, XXX que tu récupères avec ProgramExitCode(). ;)

Publié : jeu. 26/mars/2009 14:12
par Kwai chang caine
Bonjour CLS content de te reparler 8)
Oulala .....c'est interessant tout ça 8O

En plus je connaissais aucune de tes methodes :oops:

Oui MD5 c'est pour crypter de ce que j'avais vu.
Mais moi, j'men fou, je veux juste lui dire :
Papa programme a écrit :Papa : Oh marcel !!!
Marcel : Quoi
Papa : t'es pas de la famille des PROUST
Marcel : Sisi ! j'suis meme le marcel v1.0 de chez PROUST
Papa : Bon ça va, je te laisse tranquille !!! :D
Ou bien alors
Papa programme a écrit :Papa : Oh marcel !!!
Marcel : Pas de reponse
Papa : t'es pas de la famille des PROUST
Marcel : Pas de reponse
Papa : Allez "jarke de la", ici y'a que la famille qui peut poser ses octets sur ce banc :?

Publié : jeu. 26/mars/2009 14:19
par Cls
Heu MD5 ne permet pas de chiffrer (pour être précis). Il permet de calculer une valeur de Hash sur 32 bits. En gros :

De A tu génères MD5(A)
A partir de MD5(A) on ne peut pas retrouver A

Ça permettait (car ce mécanisme n'est plus considéré comme sûr) de tester des mots de passe sans les faire transiter en clair sur le réseaux (par exemple).

Edit (j'aime bien les edtis) : je te conseille de lire la partie Process dans l'aide. Elle permet de faire communiquer 2 programmes avec ReadProgramData() & WriteProgramData() ;)

Publié : jeu. 26/mars/2009 14:35
par Kwai chang caine
Ok merci, je vais le faire 8)

Autrement pour l'histoire d'une position dans les DATA.
Y'a moyen a ton avis de toujours avoir la meme position en partant de la fin de chaque programme ??? :roll:

Publié : jeu. 26/mars/2009 14:52
par Backup

Publié : jeu. 26/mars/2009 14:54
par Cls
+1 Dobro, c'est le lien que j'allais chercher ;)

Publié : jeu. 26/mars/2009 15:06
par Kwai chang caine
D'accord merci...

Donc apparement, j'ai vu que le soldat y mettait des balises de fin et de debut.
C'est donc peut etre que ça doit bouger :roll:

Remarquez que les soldats y mettent des balises souvent...mais c'est pour faire atterir les avions :lol:

Je vais faire des essais

Encore merci 8)

Publié : jeu. 26/mars/2009 20:08
par case
une solution possible...

Code : Tout sélectionner


phrase$="ceci est un test"
; --- ajout de la phrase a la fin du ficher
a$=OpenFileRequester("","","",0)  ; selection du fichier
rd=OpenFile(#PB_Any,a$)           
If rd
  FileSeek(rd,Lof(rd)-8)          ; on se positionne sur les 8 dernier octets
  chk=ReadLong(rd)                ; on lis le nombre magique sur 4 octets
  If chk & $ffffffff=$ff00ff00    ; si le nombre magique est le bon
    Debug "tag deja inscrit"
    End                           ; on quite, fichier possede deja le tag
  Else                            ; si le nombre magique n'existe pas
    FileSeek(rd,Lof(rd))          ;  on se positionne a la fin du fichier
    WriteStringN(rd,phrase$)      ; on ecrit la phrase 
    WriteLong(rd,$ff00ff00)       ; on ecrit le nombre magique
    WriteLong(rd,Len(phrase$))    ; on ecrit la longueur de la phrase en octets
    CloseFile(rd)                  ; on ferme le fichier
  EndIf
EndIf
; --- lecture de la phrase a la fin du fichier
a$=OpenFileRequester("","","",0) ; selection du fichier
rd=OpenFile(#PB_Any,a$)
If rd
  FileSeek(rd,Lof(rd)-8)          ; on se positionne sur les 8 dernier octets
  chk=ReadLong(rd)                ; on lis le nombre magique sur 4 octets
  Debug chk 
  If chk & $ffffffff=$ff00ff00    ; si le nombre magique est le bon
    len=ReadLong(rd)              ; on lis la longueur de la chaine
    FileSeek(rd,Lof(rd)-(10+len)) ; on se positione au debut de la chaine de a lire
    result$=ReadString(rd)        ; on lis la chaine
    CloseFile(rd)                 ; on ferme le fichier
  EndIf
EndIf
Debug result$                    ; on affiche le resultat



Publié : jeu. 26/mars/2009 20:34
par Backup
@Case :

heu t'es sur que ça va pas bousiller un Exe ton truc ? 8O

le code du soldat permet de pouvoir ecrire un tag a l'interieur d'un Executable

là , il semble que tu pose ton tag un peu au pif non ? 8O

Publié : jeu. 26/mars/2009 23:04
par case
non je le pose a la fin du fichier, je rajoute des octets a la fin, ca ne change rien a la partie compilée ;) donc non ça ne bousille pas l'exe

Publié : jeu. 26/mars/2009 23:19
par Anonyme
Exact , il écrit à la fin des sections compilées , donc pas de danger à première vue.

Publié : ven. 27/mars/2009 8:34
par Backup
bon ! bon ! bravo alors :D

Publié : ven. 27/mars/2009 9:41
par Kwai chang caine
Je crois bien que je te l'ai déja dit, mais

CASE je t'aime !!!!

C'est de la magie ce code, mini taille, mini prix, mais fait le maximum 8)

C'est encore mieux que ce que je voulais.
C'est presque du domaine du reve 8)

Parce que moi, pour une fois, j'etais moins ambitieux :oops:
KCC y demande toujours la lune, mais la....... il avait demandé juste une etoile :D

En fait, je voulais juste un petit code qui rajoute dans MES programmes PB du DATA et une place pour ecrire :roll:

Mais la on est dans le domaine du surnaturel, car ça marche meme pour ceux que j'ai pas ecris. 8O
Parce que KCC y se sert aussi de petits logiciels qu'il a pas ecris, comme Pack office, Outlook, LOTUS, Visual basic :lol:

Ton code ça marche (j'ai testé) pour

1/ Un exe
2/ Une JPG, mais je suppose que ça doit marcher pour toutes les images :roll:
3/ Meme un raccourcis de programme 8O

Bien sur, je viens de tester aussi un TXT...mais ça marche pas, c'est normal c'est pas compilé, je pense ?? :roll:
Par contre sur un raccourcis de TXT, ça marche mais ça rajoute la phrase dedans 8O
C'est dingue que comme dit DOBRO, ça se mélange pas les "pingouinces", quand on rajoute une glutte a une image ou un EXE.
A croire que ça lit jamais jusqu'au bout :roll:
Mais bon tant mieux :D

C'est "trop du la balle" 8O
Je m'amuse comme un petit "ouf" avec ton jouet :D

Encore bien mieux donc, que ce que je recherchais.
Je demandais le beurre...j'ai eu le beurre, l'argent du beurre...et le biiiiip de la fermiere :lol:

Je devrais arriver a creer la version "indoor" de ce code.
Pour l'intégrer dans une procedure, comme ça quand je créé un exe en PB, c'est directement marqué au fer rouge.
J'ai pas a le repasser a la moulinette, pour lui "mettre un doigt".

Par "mettre un doigt", cette fois non plus je ne supute pas ce geste disgracieux qui a pour but de faire penetrer une des parties supérieure de la main, dans l'orifice faisant office d'evacuation fecale :roll:
Je parlais de lui rajouter un doigt....et oui si pas de doigt....pas d'empreintes :lol:

Encore merci MAITRE CASE de ton cadeau.
Je te souhaite ainsi qu'aux autres membres de ce POST une excelente journée

PS:Mon bon CPL
J'suis super content de retrouver ton militaire avec l'oeil qui me fait de l'oeil :D
Celui qui m'a si gentillement accueilli
Ca me rapelle mes debuts, quand j'etais tout bébé dans le forum, et que je faisais "poupou" dans mon IDE :oops: (Gainsbar)

Publié : ven. 27/mars/2009 10:45
par Backup
...