PROTÉGER UN PROGRAMME

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 1 févr. 2007 à 00:12
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014 - 2 mars 2007 à 11:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41330-proteger-un-programme

pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
2 mars 2007 à 11:55
la 1ere question me semble triviale, on veut se protéger d'un accès d'un utilisateur non autorisé à l'application. (si un mot de passe est divulgé la on peut rien faire de toute façon)

la 2eme, je suis dans une société et l 'application ne m'appartient pas, donc je ne protège nullement ni la copie ni la destruction ni la lecture, seulement l'accès :)

la 3eme, on est à priori sur un réseau d'entreprise, donc fermé, quoi que multisite, plusieurs sites différents ont accès mais ce n'est pas internet. mais je ne gère pas cet aspect, seulement la 1ere question.
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
1 mars 2007 à 22:38
Je crois que la première question à se poser est
De quoi veut-on se protéger, voire de qui ?

Est-ce que je veux empêcher la lecture, la copie, l'utilisation ou la destruction des données d'un fichier?

Contre qui je me protège? utilisateurs d'un réseau fermé/ouvert
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
1 mars 2007 à 14:16
c'était un peu ma question aussi :) on peut supposer que c'est fait exprès pour vous permettre d'utiliser le code (ou pas!) mais alors comment est protégé le mdb?
J'utilise souvent un mdb et j'ai rarement la protection access par mot de passe activée. Mais j'utilise access pour l'interface, connecté sur un sql serveur par exemple, c'est donc le cas inverse de ce qui est fait ici. Mais la connexion au serveur requiert un mot de passe qu'il convient de bien cacher voire de coder comme le fait le papa de Thibaut (dans le code ou un fichier ini spécifique).
Quoi qu'il en soit, ici il suffirait de proteger le mdb par un mot de passe et le coder également quelque part dans le code. ensuite cette appli permet de faire une gestion multi utilisateur de l'application.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
28 févr. 2007 à 23:12
ahaha c'est bien ce que je disais mais ça leur fait plaisir de coder des truc qui servent a rien... c'est juste pour le plaisir de taper des lignes de code. Remarque moi aussi je fait ça !

@+
rgilles Messages postés 26 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 16 novembre 2009
28 févr. 2007 à 22:15
Je ne comprend pas car il m'a juste suffit d'ouvrir la base acces pour relevé le nom d'utilisateur et le mot de passe, donc ou est la dificulté dans cette sécurité.

A moin que l'on puisse vérouiller la table acces lol.

A+
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
24 févr. 2007 à 14:12
Salut,

Ce n'est pas une critique, je voulais juste savoir comme tu procéder pour faire cela.


Merci de m'avoir répondu

A+
Exploreur
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
24 févr. 2007 à 14:01
Salut Exploreur,
que veux-tu savoir précisément?

j'ai créé une Fonction Coder(Texte, Sens, Agument)

les données a cacher le sont sous la forme
print#1,coder(a,1,Arg)

pour relire, j'utilise
line input #1,a
a=coder(a,-1,Arg)

la variable Texte correspond au texte a coder
la variable sens correspond à coder/décoder
la variable Argument permet de générer un cryptage a sélectionner entre 100.

Puis-je t'aider davantage?
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
24 févr. 2007 à 13:29
Salut Le Papa De Thibaut,

Moi cela m'intérèsse de savoir ce que tu places après ?
Je ne suis pas un pro, et toutes les idées valent la peine d'être regardées...

Salutations,

Exploreur
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
24 févr. 2007 à 13:01
tout dépend de ce q'uon place après
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
24 févr. 2007 à 12:52
Je ne savais pas que "open Chemin for output as #1" etait une methode d'encodage ... :p
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
24 févr. 2007 à 11:23
Je crois avoir mieux compris ta question:

J'écris lisiblement les données dans un fichier ini
*********************************************************
Nom
Prénom
Unité
Département
Secteur
Equipe
Métier
Classe
Habilitations (Droits d'accès a mon logiciel)
*********************************************************
Juste en dessous, dans le même fichier, j'écris les mêmes données mais, cette fois-ci cryptées avec pour clef de cryptage le mnémonique de l'utilisateur.

Le nom du fichier correspond au mnémonique de l'utilisateur (donc pas de doublon)
U0000000.ini par exemple

Au démarrage de l'application, je vérifie que 'uutilisateur qui se connecte que ses données sont cohérentes sinon, on peut en déduire que le fichier a été modifié et ce fait, il perd toutes ses habilitations.
Une autre méthode de confidentialité que je n'utilise plus:
Je crée un fichier et je transforme l'heure de création pour que les milisecondes soient égal à 777. (il existe un code sur VBFrance permettant d'accéder/modifier ces données).
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
24 févr. 2007 à 11:01
Bonjour Pifou25!
Désolé pour le temps de réponse...
Je n'utilise jamais de base de données mdb. Mes données sont encodées par le principe le plus simple que je connaisse:

open Chemin for output as #1

ou, lorsque les choses se compliquent:

rtf.savefile Chemin,1

avant de chercher a coder/crypter/protéger, je te conseille en toute humilité de te demander avant de quelle manière tu désires utiliser tes données. Fais ce qui t'arranges le mieux pour que ton programme fonctionne vite et bien et puis, pour moi, la stratégie de sécutité d'un programme va au delà.
>Un exemple concret: si mon nom n'aparait plus comme "Créateur de mon logiciel", l'application affiche un message d'erreur et se ferme.

Je me permet également de te conseiller de ne jamais écrire de texte du style :
if code <> "Crayon" then goto Erreur_De_Code
car, même compilé, le texte reste tel quel.
La solution que je propose est de crypter(dans le sens déformer) de la manière suivante:
1. Je crée une Fonction de cryptage
2. Je crypte mon code avec
une fois crypté, mon code d'accès "CRAYON" devient "EZAQS1265" (par exemple)
3. Quand j'ouvre une session, j'utilise la même fonction
if Crypter(Text1)<> Code then goto Erreur_De_Code

Cela me semble un bon début, bien évidemment, la mise en oeuvre est toujours plus complexe que la théorie.
Par exemple, il faut gérer les chr(34) que je remplace par 2 apostrophes.
Bon, je crois que je me suis éloigné de ta question...
goumis2002 Messages postés 15 Date d'inscription samedi 20 décembre 2003 Statut Membre Dernière intervention 26 février 2007
24 févr. 2007 à 09:55
Je repete avec toi "BOUV"

"Autant utiliser ce temps à amèliorer sa technique ! La protection viendra avec l'expérience !"
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
15 févr. 2007 à 11:34
comment sont protégées les 2 bases de données? (.mdb)
Le Papa de Thibaut Messages postés 53 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 7 mars 2015 1
7 févr. 2007 à 19:10
Bonjour,
Je ne pense pas que l'on restreint l'accès de ses applis pour éviter que chacun y mette son nez ou alors pour empêcher les copies sauvages. Je sais également qu'en dehors de la grande masse, il existe une minorité capable de cracker.

je protège mes appli en 2 temps
1. Le numéro de licence unique a chaque enregistrement qui est fonction du numéro de série du disque dur. Cela empêche mes collègues de récupérer pour eux les différentes données que j'ai collectées.
2. Chacun de mes fichiers est crypté en fonction a) de la personne qui a créé le fichier et b) de l'accès qu'elle désire donner aux autres utilisateurs. L'algorytme de cryptage n'est pas linéaire et le nombre d'étape ainsi que la nature des actions varie a chaque enregistrement.

Je suis loin d'être un expert mais, personnellement, ca me suffit pour ce que je fais. J'espère t'avoir apporté de idées nouvelles.
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
5 févr. 2007 à 10:43
je trouve que c'est quand meme un comble de se restreindre à se dire "c'est impossible de sécuriser mon appli" pour un developpeur...
Pour l'instant à titre perso ça passe, mais dans un milieu professionel, je vous vois pas repondre ça à votre chef de projet...
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
3 févr. 2007 à 20:14
Pas tout à fait d'accord (dans le fond) avec toi Shaoni.
Un BON programme (destiné à la vente) mérite une BONNE protection.

Seulement, je pense que celui qui est capable de faire un programme, digne que l'on s'y interresse, est également capable de faire une bonne protection, sans avoir à venir ici chercher comment s'y prendre.

Enfin, il est étrange de constaté que la majorité d'entre nous (j'en fait parti) a cherché (dans leur début) à protéger ses 'futurs' programme avant même de savoir les faire...

Donc en résumé, je changerai juste ta dernière phrase ainsi :
"Autant utiliser ce temps à amèliorer sa technique ! La protection viendra avec l'expérience !"

Bonne prog
++
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
3 févr. 2007 à 12:20
Shaoni > Chui completement d'accord avec toi.
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 févr. 2007 à 18:39
Oui Shaoni, il n'y a pas une protection efficace qui tienne la route sans tomber dans des trucs hyper compliqués.
Mais pour quelqu'un qui commence ce langage, il lui faut plus de temps pour améliorer ses sources futur..Voyant que la c'est la première..

A+
Exploreur

Les chefs c'est comme les étagères + c'est haut - on sans sert...
cs_shaoni Messages postés 186 Date d'inscription mercredi 11 avril 2001 Statut Membre Dernière intervention 12 septembre 2007
1 févr. 2007 à 17:22
Je trouve que on passe énormément de temps à proteger les applis et en fin de compte ca ne sert jamais à rien !
autant utiliser ce temps à amèliorer le prog ! non ?
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 févr. 2007 à 00:21
Salut,

Faut bien commencer un jour par quelque chose.
Non..non..je le dirais pas EBArtSoft..lol

A+
Exploreur
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
1 févr. 2007 à 00:12
Ta protection ne tiendra meme pas 2 secondes. Suffit de remplacer la fenetre de demarrage au liueu de form1 je lance form2 et hop plus de protection. Je n'expliquerais pas comment faire ce changement car c'est deja sur le site.

Mais bon, on va encore me dire qu'on a tous debuté un jour, alors...
Rejoignez-nous