neo2k2
Messages postés126Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 novembre 2009
-
9 juin 2008 à 11:05
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008
-
13 juin 2008 à 19:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 13 juin 2008 à 19:32
en tout cas merci a tous pour vos commentaire je méttrai tout en oeuvre pour effectuer les rectification nécéssaire un merci particulier a Kevin.Ory qui m'a donner des solutions plus poussé et de la doc a consulter pour y arriver.
merci a tous et a bientôt sur vbfrance
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 13 juin 2008 à 08:51
a au fait j'ai oublier de préciser mon fichier fait 5.52 mo mais le code que vous voyez ici n'est qu'un extrait de la totalité du programme final donc soyez indulgent si il y a des manques !!
je ne peut pas forcément distribué l'application car je suis en stage et donc le programme reste la propriété du responsable de stage (entreprise)
merci a tous de vos solicitations
laurent
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 12 juin 2008 à 16:37
merci gillardg je vais voir ce que sa donne et je te dirai sa en tout cas merci pour vos mobilisation au sujet de mon programme une version bien plus fini est en passe d'être terminé je la mettrai quand elle sera abouti
a+ sur codes sources
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 12 juin 2008 à 10:29
pour un Shareware ,
il y a un "Shareware starter kit" de Microsoft
( j'ai pas encore éssayé ce que ça donne)
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 12 juin 2008 à 10:06
Salut Thiery,
Tout d'abord, merci à toi de m'avoir cité dans ton texte :)
Ensuite, je rejoins les autres au sujet de la non-efficacité de ton système de protection. Mais les commentaires ayant déjà été fait, je ne reviendrai pas la dessus. Par contre j'explique comment je ferais la chose (qui n'est peut-être pas non plus la meilleur d'ailleurs, je n'ai aucune expérience dans ce domaine):
- Du code .NET est facilement décompilable, n'importe qui s'y connaissant un peu peut donc voir comment fonctionne ton programme (pour trouver le chemin de ton fichier "config.xmlID.P00000444.txt" par exemple.
- Je crois qu'à peu-près toutes les limitations de temps de ce genre des versions shareware sont crackables (Microsoft n'est pas épargné)
Pour palier au 1er problème, tu peux rendre ton code quasiment impossible à lire grâce à Dotfuscator. Sa version Community (la plus simple) est d'ailleurs fournis avec VS 2008. Plus d'infos (chez MS):
http://msdn.microsoft.com/fr-fr/library/ms227240(VS.80).aspx
Pour éviter le 2ème problème, ne limite pas ton programme dans le temps mais limite ses fonctionnalités ou son confort d'utilisation.
Il faut faire attention au niveau des limitations de fonctionnalités, car cela peut rendre ton shareware inutilisable et donc par réellement testable et digne d'intérêts.
Le mieux à mon avis, est de limiter son confort d'utilisation. Exemple:
- Pour un programme de compression de vidéos, rajoute un logo/nom/email sur la vidéo créé.
- Limite la duré d'exécution de ton programme à 10 minutes d'utilisation. - Régulièrement lancer le navigateur Internet sur la page de ton site.
Ces exemples permettent une totale utilisation de ton programme mais sans pouvoir pleinement en profiter. Quelqu'un qui l'apprécie n'hésitera donc pas à l'acheter...
Ce qu'il y a de mieux, c'est évidement une vérification en ligne à chaque démarrage, mais ce n'est applicable qu'à peu de programmes (programme en ligne...) et est plus difficile à mettre en œuvre ;)
A bientôt...
pouda
Messages postés264Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention27 octobre 2014 11 juin 2008 à 22:17
niveau sécurité pas top...la version shareware....si pas malheur..on déplace le programme sur une nouvelle partition il fichier reprenne une nouvelle date...et l'on repart pour 365 jours....
snak27
Messages postés17Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention25 septembre 2008 11 juin 2008 à 15:13
Salut !
J'ai pas vraiment vu ton code mais j'ai vu tes fautes de grammaire et d'orthographe. par exemple le label.text,
ce n'est pas "Fin de validiter" mais "Fin de validité"
A+ Snak
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 juin 2008 à 22:49
euh....
c'est pas ce qui a été fait? ^^
bon courage ;)
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 9 juin 2008 à 22:45
moi je veut bien donnez moi une solutions pour éviter une date en dur je ne suis pas un developpeur confirmer je ne suis quand premiere année tout conseil est le bien venu donnez moi des exemples s'il vous plait que je puisse argumenter mon code
cs_windob
Messages postés225Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention25 août 2008 9 juin 2008 à 17:52
C'est clair que pour réellement limiter un programme, il faut oublier les conditions simples !
Un JE est si vite changé en JMP avec un editeur hexa que si l'exe n'est pas au moins compressé et/ou crypté, n'importe qui pourra le cracker.
Une des solutions connues consiste a crypter le code qui ne peut-etre décrypté que par une bonne clé, ainsi, le cracking est rendu réellement plus difficile, mais la, c'est un niveau au dessus !
Sinon, je rejoint les autres commentaires sur le nom des controles qui devrait etre explicite et sur les chemins "en dur" qui sont a bannir absolument !
Bonne continuation.
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 9 juin 2008 à 17:23
salut tous,
de toute façon je crois que pour un shareware , un beau Splash screen qui reste 10 secondes et une page internet qui se lance automatiquement au démmarrage c'est déjà pas si mal.
=>une Dll diférente suivant que la version est enregistrée ou pas
=>contrôle d'un numéro de série
qui a d'autres pistes simples?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 juin 2008 à 16:12
YYYYMMDDHHNNSS*
("NN", pas "MM", mais bon)
de toute façon tout bidouilleur te dira qu'il lui suffit de changer le test IF final pour passer au dessus alors à quoi bon au final?... ;)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 juin 2008 à 16:09
tu n'as pas besoin de chercher sur tous les disques....
ton application , une fois lancée, connait son nom et son répertoire en cours
et mettre une date en dur..., çà veut dire que le prog ne marchera pas dans un an même si l'install est du jour même.
tu t'imagines avoir une version shareware 30jours que tu lances pour la première fois et pour laquelle il reste déjà moins voire aucun délai?
niveau code je ne fais pas de dotnet donc...
mais une idée serait, par exemple :
registre , 2 valeurs "date" et "témoin", contenant des dates YYYYMMDDHHMMSS cryptées
lire "date" ::>
*pas de valeur ::>
-premier lancement
-écrire "date" date du jour, cryptée ou codée
-écrire "temoin" date du jour, cryptée ou codée
-lancer appli
*valeur ::>
*lire "témoin" ::>
*"témoin" < NOW et > "date"
-le dernier lancement est d'une date normale
*SI NOW > "témoin"
*SI now - "date" <365
-"témoin" reçoit now
-lance appli
*SINON
-message + bye (périmée)
*SINON
-message + bye (il a bidouillé sa date system)
*"témoin" invalide => bye (il a bidouillé sa date system)
voilà en gros et sans vérif...
nb : tu peux facilement encoder la date sur 4 carac (voir format renvoyé par les serveurs NTP)
++
cs_Megafan
Messages postés389Date d'inscriptiondimanche 7 avril 2002StatutMembreDernière intervention23 septembre 20162 9 juin 2008 à 15:49
Salut,
5.52 Mo de code source ??? whaouu je suis impressionné !
@+
Megafan
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 9 juin 2008 à 15:26
tout t'a fait d'accord avec toi je cherche justement un moyen de l'installer sur nimporte quel disque dur et de pouvoir faire la recherche sur tout les disques possibles rien qu'en donnant le nom de mon fichier mais je ne sais pas comment faire!!
au cas ou si tu as une piste ?
et ma date d'install de mon applications je l'avais proposer au gars qui me fait faire mon stage mais sa ne l'interésser pas .
j'y avais penser !
merci de ta participation et si tu as de quoi me répondre c'est avec grands plaisir.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 juin 2008 à 15:22
salut,
et tu peux pas simplement faire un projet exemple plutôt qu'apparemment fournir une appli que, par nature, tu voudrais ne pas distribuer?
mais de toute façon :
*pourquoi lire un fichier texte, la date d'install de ton appli (propriété exe) ne suffirait pas?
*chemin en DUR :
-mon programfiles pourrait ne pas être sur le C
-je n'installe pas forcément ton prog dans programfiles
-si je trouve un dossier XPSP2 sur mon WIN2000, crois moi je vais me poser des questions...
*si je lance l'exe en changeant la date system, ta protection devient totalement inutile :)
ps : dans ce genre de "routine", le but est de pouvoir réutiliser facilement. pense aux classes ;)
thierylaurent
Messages postés45Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention23 juin 2008 9 juin 2008 à 14:10
je vais essayer de la mettre sur rapid share comme sa vous pourrez la tester ou mieux encore je joint le fichier d'install merci en tout cas de vos réponse je l'ai poster pour éventuellement aider d'autre personnes qui galèrerai a chercher un truc dans le même style.
si vous avez d'autres idées pas de problèmes je pourrai encore améliorer mon programme.
merci a tous et bonn journée
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 9 juin 2008 à 12:29
ça ne fonctionne pas !
j'ai mis un fichier texte avec une date en première ligne de texte :1/1/2007 et ton prrog me dit qu'il me reste 161 jours ! bizarre non????
comme ça en plus ça fonctionne
If Span.TotalDays > 365 Then
btnquitter.Visible = True
btnsuivant.Visible = False
Label2.Text = "Date d'installation du programme" & date_confirmer
Label1.Text = "le programme " & My.Application.Info.ProductName & vbCrLf & " A Expiré, " & vbCrLf & "Paix a son âme"
Else
If Span.TotalDays > 0 Then
'désactivation du bouton quitter
btnquitter.Visible = False
'activation du bouton suivant
btnsuivant.Visible = True
'remplissage du label message information
Label1.Text = "Bienvenue et merci d'utiliser les programmes concues par I.D.E.E.S."
'remplissage du label date
Label2.Text = "Date d'installation du programme" & date_confirmer
'appel du formulaire
Me.Show()
End If
'si la date de création du programme est supèrieure a 365 jours alors
If Span.TotalDays > 364 Then
'incrematation du label par rapport au nombre de jour qui change constament
Label1.Text = "Fin de validiter du programme veuillez appeller I.D.E.E.S. 06.62.80.47.56"
'désactivation du bouton suivant
btnsuivant.Visible = False
'activation du bouton quitter
btnquitter.Visible = True
'lecture de la date de création du programme
Label2.Text = "Date d'installation du programme" & date_confirmer
'Appel de la fenêtre de mise a jour
Me.Show()
End If
'si l'on arrive a 30 jours de la date de fin du programme alors
If Span.TotalDays = 330 Then
'incrematation du label par rapport au nombre de jour qui change constament
Me.Label1.Text = "Le programme arrive a expiration dans " & Span.Days - 364 & " jours " & Span.Hours & " heures et " & Span.Minutes & " minutes penser a appeller I.D.E.E.S. 06.62.80.47.56"
'désactivation du bouton quitter
Me.btnquitter.Visible = False
'activation du bouton suivant
Me.btnsuivant.Visible = True
'appel du formulaiire principal
Me.Show()
End If
'si la date de création et superieure a la date du jour alors
If Span.TotalDays < 0 Then
'appel de messagebox pour date anterieure a la date de création du programme
MessageBox.Show("Erreur date du systeme incorecte le programme va se fermer veuillez appelez l'administrateur systeme", "Erreur Fatale !!!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
'activation du bouton quitter
btnquitter.Visible = True
'désactivation du bouton suivant
btnsuivant.Visible = False
End If
End If
neo2k2
Messages postés126Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention 9 novembre 20093 9 juin 2008 à 11:05
Il est dommage que tu ne joignes aucun zip de ta source, sinon comment la juger?
Pour le peu de code figurant, un conseil, évites les contrôles sans nom genre "Label1" ou "Button1", tu l'as fait pour la pluspart des boutons donc n'oublies pas les autres... ;o)
Tu peux également zipper ta source et la poster sur rapidshare ou un autre site du genre.
13 juin 2008 à 19:32
merci a tous et a bientôt sur vbfrance
13 juin 2008 à 08:51
je ne peut pas forcément distribué l'application car je suis en stage et donc le programme reste la propriété du responsable de stage (entreprise)
merci a tous de vos solicitations
laurent
12 juin 2008 à 16:37
a+ sur codes sources
12 juin 2008 à 10:29
pour un Shareware ,
il y a un "Shareware starter kit" de Microsoft
( j'ai pas encore éssayé ce que ça donne)
12 juin 2008 à 10:06
Tout d'abord, merci à toi de m'avoir cité dans ton texte :)
Ensuite, je rejoins les autres au sujet de la non-efficacité de ton système de protection. Mais les commentaires ayant déjà été fait, je ne reviendrai pas la dessus. Par contre j'explique comment je ferais la chose (qui n'est peut-être pas non plus la meilleur d'ailleurs, je n'ai aucune expérience dans ce domaine):
- Du code .NET est facilement décompilable, n'importe qui s'y connaissant un peu peut donc voir comment fonctionne ton programme (pour trouver le chemin de ton fichier "config.xmlID.P00000444.txt" par exemple.
- Je crois qu'à peu-près toutes les limitations de temps de ce genre des versions shareware sont crackables (Microsoft n'est pas épargné)
Pour palier au 1er problème, tu peux rendre ton code quasiment impossible à lire grâce à Dotfuscator. Sa version Community (la plus simple) est d'ailleurs fournis avec VS 2008. Plus d'infos (chez MS):
http://msdn.microsoft.com/fr-fr/library/ms227240(VS.80).aspx
Pour éviter le 2ème problème, ne limite pas ton programme dans le temps mais limite ses fonctionnalités ou son confort d'utilisation.
Il faut faire attention au niveau des limitations de fonctionnalités, car cela peut rendre ton shareware inutilisable et donc par réellement testable et digne d'intérêts.
Le mieux à mon avis, est de limiter son confort d'utilisation. Exemple:
- Pour un programme de compression de vidéos, rajoute un logo/nom/email sur la vidéo créé.
- Limite la duré d'exécution de ton programme à 10 minutes d'utilisation. - Régulièrement lancer le navigateur Internet sur la page de ton site.
Ces exemples permettent une totale utilisation de ton programme mais sans pouvoir pleinement en profiter. Quelqu'un qui l'apprécie n'hésitera donc pas à l'acheter...
Ce qu'il y a de mieux, c'est évidement une vérification en ligne à chaque démarrage, mais ce n'est applicable qu'à peu de programmes (programme en ligne...) et est plus difficile à mettre en œuvre ;)
A bientôt...
11 juin 2008 à 22:17
11 juin 2008 à 15:13
J'ai pas vraiment vu ton code mais j'ai vu tes fautes de grammaire et d'orthographe. par exemple le label.text,
ce n'est pas "Fin de validiter" mais "Fin de validité"
A+ Snak
9 juin 2008 à 22:49
c'est pas ce qui a été fait? ^^
bon courage ;)
9 juin 2008 à 22:45
9 juin 2008 à 17:52
Un JE est si vite changé en JMP avec un editeur hexa que si l'exe n'est pas au moins compressé et/ou crypté, n'importe qui pourra le cracker.
Une des solutions connues consiste a crypter le code qui ne peut-etre décrypté que par une bonne clé, ainsi, le cracking est rendu réellement plus difficile, mais la, c'est un niveau au dessus !
Sinon, je rejoint les autres commentaires sur le nom des controles qui devrait etre explicite et sur les chemins "en dur" qui sont a bannir absolument !
Bonne continuation.
9 juin 2008 à 17:23
de toute façon je crois que pour un shareware , un beau Splash screen qui reste 10 secondes et une page internet qui se lance automatiquement au démmarrage c'est déjà pas si mal.
=>une Dll diférente suivant que la version est enregistrée ou pas
=>contrôle d'un numéro de série
qui a d'autres pistes simples?
9 juin 2008 à 16:12
("NN", pas "MM", mais bon)
de toute façon tout bidouilleur te dira qu'il lui suffit de changer le test IF final pour passer au dessus alors à quoi bon au final?... ;)
9 juin 2008 à 16:09
ton application , une fois lancée, connait son nom et son répertoire en cours
http://www.codyx.org/snippet_repertoire-courant-application_81.aspx
et mettre une date en dur..., çà veut dire que le prog ne marchera pas dans un an même si l'install est du jour même.
tu t'imagines avoir une version shareware 30jours que tu lances pour la première fois et pour laquelle il reste déjà moins voire aucun délai?
niveau code je ne fais pas de dotnet donc...
mais une idée serait, par exemple :
registre , 2 valeurs "date" et "témoin", contenant des dates YYYYMMDDHHMMSS cryptées
lire "date" ::>
*pas de valeur ::>
-premier lancement
-écrire "date" date du jour, cryptée ou codée
-écrire "temoin" date du jour, cryptée ou codée
-lancer appli
*valeur ::>
*lire "témoin" ::>
*"témoin" < NOW et > "date"
-le dernier lancement est d'une date normale
*SI NOW > "témoin"
*SI now - "date" <365
-"témoin" reçoit now
-lance appli
*SINON
-message + bye (périmée)
*SINON
-message + bye (il a bidouillé sa date system)
*"témoin" invalide => bye (il a bidouillé sa date system)
voilà en gros et sans vérif...
nb : tu peux facilement encoder la date sur 4 carac (voir format renvoyé par les serveurs NTP)
++
9 juin 2008 à 15:49
5.52 Mo de code source ??? whaouu je suis impressionné !
@+
Megafan
9 juin 2008 à 15:26
au cas ou si tu as une piste ?
et ma date d'install de mon applications je l'avais proposer au gars qui me fait faire mon stage mais sa ne l'interésser pas .
j'y avais penser !
merci de ta participation et si tu as de quoi me répondre c'est avec grands plaisir.
9 juin 2008 à 15:22
et tu peux pas simplement faire un projet exemple plutôt qu'apparemment fournir une appli que, par nature, tu voudrais ne pas distribuer?
mais de toute façon :
*pourquoi lire un fichier texte, la date d'install de ton appli (propriété exe) ne suffirait pas?
*chemin en DUR :
-mon programfiles pourrait ne pas être sur le C
-je n'installe pas forcément ton prog dans programfiles
-si je trouve un dossier XPSP2 sur mon WIN2000, crois moi je vais me poser des questions...
*si je lance l'exe en changeant la date system, ta protection devient totalement inutile :)
ps : dans ce genre de "routine", le but est de pouvoir réutiliser facilement. pense aux classes ;)
9 juin 2008 à 14:10
si vous avez d'autres idées pas de problèmes je pourrai encore améliorer mon programme.
merci a tous et bonn journée
9 juin 2008 à 12:29
j'ai mis un fichier texte avec une date en première ligne de texte :1/1/2007 et ton prrog me dit qu'il me reste 161 jours ! bizarre non????
comme ça en plus ça fonctionne
If Span.TotalDays > 365 Then
btnquitter.Visible = True
btnsuivant.Visible = False
Label2.Text = "Date d'installation du programme" & date_confirmer
Label1.Text = "le programme " & My.Application.Info.ProductName & vbCrLf & " A Expiré, " & vbCrLf & "Paix a son âme"
Else
If Span.TotalDays > 0 Then
'désactivation du bouton quitter
btnquitter.Visible = False
'activation du bouton suivant
btnsuivant.Visible = True
'remplissage du label message information
Label1.Text = "Bienvenue et merci d'utiliser les programmes concues par I.D.E.E.S."
'remplissage du label date
Label2.Text = "Date d'installation du programme" & date_confirmer
'appel du formulaire
Me.Show()
End If
'si la date de création du programme est supèrieure a 365 jours alors
If Span.TotalDays > 364 Then
'incrematation du label par rapport au nombre de jour qui change constament
Label1.Text = "Fin de validiter du programme veuillez appeller I.D.E.E.S. 06.62.80.47.56"
'désactivation du bouton suivant
btnsuivant.Visible = False
'activation du bouton quitter
btnquitter.Visible = True
'lecture de la date de création du programme
Label2.Text = "Date d'installation du programme" & date_confirmer
'Appel de la fenêtre de mise a jour
Me.Show()
End If
'si l'on arrive a 30 jours de la date de fin du programme alors
If Span.TotalDays = 330 Then
'incrematation du label par rapport au nombre de jour qui change constament
Me.Label1.Text = "Le programme arrive a expiration dans " & Span.Days - 364 & " jours " & Span.Hours & " heures et " & Span.Minutes & " minutes penser a appeller I.D.E.E.S. 06.62.80.47.56"
'désactivation du bouton quitter
Me.btnquitter.Visible = False
'activation du bouton suivant
Me.btnsuivant.Visible = True
'appel du formulaiire principal
Me.Show()
End If
'si la date de création et superieure a la date du jour alors
If Span.TotalDays < 0 Then
'appel de messagebox pour date anterieure a la date de création du programme
MessageBox.Show("Erreur date du systeme incorecte le programme va se fermer veuillez appelez l'administrateur systeme", "Erreur Fatale !!!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
'activation du bouton quitter
btnquitter.Visible = True
'désactivation du bouton suivant
btnsuivant.Visible = False
End If
End If
9 juin 2008 à 11:05
Pour le peu de code figurant, un conseil, évites les contrôles sans nom genre "Label1" ou "Button1", tu l'as fait pour la pluspart des boutons donc n'oublies pas les autres... ;o)
Tu peux également zipper ta source et la poster sur rapidshare ou un autre site du genre.