Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2980 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [] Afficher un msg que si le prog est executé pour la 1ére fois...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[] Afficher un msg que si le prog est executé pour la 1ére fois...

n°1457605
Bad_Day
Posté le 15-10-2006 à 18:24:28  profilanswer
 

Salut.
 
J'ai fais un programme en C (je suis sous Windows) , où je veut qu'un message s'affiche a la 1ére execution du programme selement..
je ne vois pas trop comment faire:
Crée un fichier txt , et tester ? Mais si on supprime le fichier (peut arrivé facilement), c'est la cata...
Crée une clée registe ? Oui bonne idée, mais comment tester ensuite si la clée existe où pas encors...
.........
 
Merci pour votre aide..

Message cité 1 fois
Message édité par Bad_Day le 15-10-2006 à 18:25:59
mood
Publicité
Posté le 15-10-2006 à 18:24:28  profilanswer
 

n°1457619
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-10-2006 à 18:49:14  profilanswer
 

Bad_Day a écrit :

J'ai fais un programme en C (je suis sous Windows) , où je veut qu'un message s'affiche a la 1ére execution du programme selement..
je ne vois pas trop comment faire:
Crée un fichier txt , et tester ? Mais si on supprime le fichier (peut arrivé facilement), c'est la cata...
Crée une clée registe ? Oui bonne idée, mais comment tester ensuite si la clée existe où pas encors...
.........


Je crois que tu a fais le tour... Tu peux rendre le fichier 'caché', et 'en lecture seule' (voir ton API système), le placer dans un répertoire invisible et/ou système, lui donner un nom qui fait peur (system.exe, sys32.bin, win32.dll, vérifie quand même que ce n'est pas quelque chose de réel...)...
 
Quand au registre (Win32), l'API Win32 fourni un tas de fonctions de manipulation des clés... MSDN est ton ami.
 
Sache cependant qu'aucune protection n'est inviolable.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1457660
Bad_Day
Posté le 15-10-2006 à 20:01:22  profilanswer
 


Aaaggrrrrr... Je déteste ce site..  Mais je croi que je n'ai pas le choix  :p
 
Edit: je n'ai trouvé que pour Delphi http://www.developpez.com/delphi/f [...] istevaleur     alalaa
 


Message édité par Bad_Day le 15-10-2006 à 20:04:48
n°1458669
Bad_Day
Posté le 17-10-2006 à 13:30:43  profilanswer
 

En fait, j'aimerai bien savoir comment il faut faire pour qu'un programme puissent s'exécuté pendant une certaine période, puis quand la période et dépassé le prog ce bloque...
 
 

n°1458686
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-10-2006 à 13:56:57  profilanswer
 

Bad_Day a écrit :

En fait, j'aimerai bien savoir comment il faut faire pour qu'un programme puissent s'exécuté pendant une certaine période, puis quand la période et dépassé le prog ce bloque...


A l'évidence, il faut stocker la date d'installation calculer la date de péremption, surveiller la date courante... Ca parait assez simple et évident, et ça n'a aucun rapport avec le langage C.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1458726
Bad_Day
Posté le 17-10-2006 à 14:21:23  profilanswer
 

Emmanuel Delahaye a écrit :

A l'évidence, il faut stocker la date d'installation calculer la date de péremption, surveiller la date courante... Ca parait assez simple et évident, et ça n'a aucun rapport avec le langage C.


Oui je sais ...
Mais si je ne poste pas ca dans le forum programmation où esque tu veut que je le poste...
 
 

n°1458807
Emmanuel D​elahaye
C is a sharp tool
Posté le 17-10-2006 à 15:10:09  profilanswer
 

Bad_Day a écrit :

Oui je sais ...
Mais si je ne poste pas ca dans le forum programmation où esque tu veut que je le poste...


programmation, oui, mais pas programmation/c. Mais bon, c'est plus un problème de conception. algo, peut être ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1460085
anordem
Posté le 18-10-2006 à 21:54:34  profilanswer
 

Emmanuel Delahaye a écrit :

A l'évidence, il faut stocker la date d'installation calculer la date de péremption, surveiller la date courante... Ca parait assez simple et évident, et ça n'a aucun rapport avec le langage C.


 
Hmm, ça ressemble à une protection de type shareware et une implémentation de ce type ne protègera pas grand chose. En effet, il suffit de modifier la date système pour que le programme puisse s'exécuter. De la même façon, si on trouve où est stocké la date d'installation, on peut la modifier pour que le programme s'exécute indéfiniment.
 
Si le but du code est de protéger un programme, alors il va falloir réfléchir sérieusement. J'irai même jusqu'à dire que c'est impossible.
Si par contre, c'est pour un usage privé, alors "l'algo" décrit par Emmanuel Delahaye suffit largement.
 
Sinon, donne plus de précisions.
 

n°1460150
Bad_Day
Posté le 18-10-2006 à 23:12:39  profilanswer
 

anordem a écrit :

Hmm, ça ressemble à une protection de type shareware et une implémentation de ce type ne protègera pas grand chose. En effet, il suffit de modifier la date système pour que le programme puisse s'exécuter. De la même façon, si on trouve où est stocké la date d'installation, on peut la modifier pour que le programme s'exécute indéfiniment.
Si le but du code est de protéger un programme, alors il va falloir réfléchir sérieusement. J'irai même jusqu'à dire que c'est impossible.
Si par contre, c'est pour un usage privé, alors "l'algo" décrit par Emmanuel Delahaye suffit largement.
Sinon, donne plus de précisions.


C'est comme tu a dit : le but du code est de protéger un programme, donc l'algo donné par Emmanuel n'est pas ...
 

n°1460193
anordem
Posté le 19-10-2006 à 03:46:42  profilanswer
 

On s'éloigne de la programmation C mais je voudrais apporter quelques infos supplémentaires.
 
Je pense que la meilleure protection (ce qui ne veut pas dire qu'elle soit parfaite) est de proposer une version de démonstration non complète comme pour les jeux video. Si ce n'est pas possible, il faut effectivement se pencher vers un autre type de protection. Dans ce cas, il faut prendre en compte 2 points fondamentaux : l'algorithme et son implémentation.
 
Pour le premier, et si l'on suit l'idée donnée par Emmanuel, il faut :  
- Trouver un moyen sûr de connaitre la date actuelle (ex : fichiers systèmes, serveur NTP, etc.).
- Cacher la date d'installation (ex : cryptage RC4, AES, RSA, etc. avec test d'intégrité (SHA-xxx)).
 
Mais tout ça ne vaut rien si dans ton code, tu as :

Code :
  1. if (DiffDate() > NOMBRE_MAX_DE_JOURS)
  2. {
  3.     Quit();
  4. }


Car autant la comparaison que la constante peuvent être modifiées facilement.
 
Il faut donc camoufler ce test dans ton code, par exemple : le diviser en plusieurs parties éparpillées au milieu des routines d'initialisation, utiliser plusieurs variables et points de contrôle, crypter le code principal du programme et le décrypter au fur et à mesure que les tests se font. Tu peux aussi "crypter" les valeurs, par exemple : l'année 2006 est supérieure à l'année 2005 mais 2006 * 2 > 2005*2 aussi et en mettant des centaines d'opérations comme ça éparpillées dans toutes les routines d'initialisation, en utilisant de nombreuses variables, tu peux facilement perdre un attaquant. Je dirai que c'est la partie artistique de la programmation, cela demande de faire preuve d'imagination. :)
 
Il y a également tout un tas de techniques anti-debug pour empêcher ralentir l'analyse du programme...
 
En fait, c'est un ensemble de techniques mises bout à bout qui peuvent donner une protection "fiable".
 
Il reste les protections commerciales, mais je te le déconseille car aucune protection n'est inviolable et l'investissement n'en vaut pas la peine. Mais ce n'est que mon avis.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [] Afficher un msg que si le prog est executé pour la 1ére fois...

 

Sujets relatifs
Afficher un champ d'un etat sous conditionAfficher tous les sous-ensembles de 1 a N
[Opengl] afficher un texteDOM/XSLT n'est pas afficher dans mon phpinfo()
parcourir, Stocker image ds bd mysql et l'afficher !![.Net C# 2.0]Afficher les categories / sous-categories d'un forum
[RESOLU]Afficher date la plus récente et heure en conséquence[C#.NET] Afficher une zone d'un fichier PDF dans une fenetre ?
Résolu - Afficher dans ma page une valeur pointée par une URL[Resolu][C#NET] Mettre le focus sur un onglet (pour le faire afficher)
Plus de sujets relatifs à : [] Afficher un msg que si le prog est executé pour la 1ére fois...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR