Copyright: PROTECTW V 2.0


Contents
Enregistrez-vous

I - Introduction

Protectw.exe est un programme permettant de crypter une disquette de format classique. Les formats supportés sont les suivantes:

- 3½ Double Densité 80 Pistes par Faces 9 Secteurs par Pistes de 512 Octects

- 3½ Haute Densité 80 Pistes par Faces 18 Secteurs par Pistes de 512 Octects

- 5¼ Double Densité 40 Pistes par Faces 9 Secteurs par Pistes de 512 Octects

- 5¼ Haute Densité 80 Pistes par Faces 15 Secteurs par Pistes de 512 Octects

Toutes disquettes une fois plombées peuvent-être utilisées pour contenir des données tels que programmes ou simplement des fichiers par les commande DOS:

`copy <source> <destination>` ou xcopy <source> <destination>`.

Rq: Ce programme ne fonctionne que sur des disquettes formatées DOS standard. C`est à dire 5½ DD,HD et 3¼ DD,HD. et aussi sur MS-DOS 4.0 minimum. Le type de processeur est sans importance.

II - Le Menu

Il est composé de trois grandes parties:

Help..me

Options

Action

III - Utilisation de la disquette cryptée

Ce logiciel est fourni avec deux unitées (pour Pascal) et un fichier *.obj (pour C) permettant d`exploiter les disquettes protégées par celui-ci.

Pirates

Piratesw

Piratesc

IV - Fiche Technique

1- Papi fait de la résistance

Voici la liste des programmes avec lesquelles il est impossible de dupliquer les disquettes plombées, Cette liste n`étant pas exhaustive (Envoyer moi vos futures découvertes).

Logiciels	3½ HD	3½ DD	5¼ HD	5¼ DD
Diskcopy DOS 6.22	Copie sans copier	Copie sans copier	Copie sans copier
Diskcopy DOS 6.20	Copie sans copier	Refuse de copier	Refuse de copier
Wincopy (Win3.10)	Copie sans copier	Copie sans copier	Copie sans copier
Wincopy (Win3.11)	Copie sans copier	Copie sans copier	Copie sans copier
Blitzcpy 2.0	Copie sans copier	Copie sans copier	Copie sans copier	Copie sans copier
Sabdu 2.17	Copie sans copier	Copie sans copier	Copie sans copier	Copie sans copier
Tos Copy 1.0	Copie sans copier	Copie sans copier	Copie sans copier	Copie sans copier
2- Les réactions des utilitaires

Logiciels	3½ HD	3½ DD	5¼ HD	5¼ DD
Scandisk DOS 6.20	Disquette non Standard Dans ce cas ne pas corriger les erreurs	Sans problème	Sans problème	Sans Problème
Format DOS 6.20	Supprimer tous les fichiers et Déprotéger avant de le formatter	Supprimer tous les fichiers et Déprotéger avant de le formatter	Supprimer tous les fichiers et Déprotéger avant de le formatter	Supprimer tous les fichiers et Déprotéger avant de le formatter

V - Exemple d`utilisation

Intall.exe

Main.exe

VI - Conclusion

J`espère que ce petit programme vous donnera satisfaction. Si vous avez des idées pour l`amélioration de ce logiciel, faites moi part de vos remarques pour me permettre de mieux cerner vos besoins, et par conséquent faire évoluer le programme. Vos remarques sont toujours les bien venues.

VII - Coordonnées

M. Chan Piu Nicolas

28 Rue Charles Montaland

68100 Villeurbanne

France

Tel: 78-85-69-66

Attention, pour les possesseur des version antérieures, il n`y a plus de compatibilité. En effet la méthode de protection a été modifiée pour permettre un plus grande sécurité.


MenuHelp
HELP

Contient le fichier que vous êtes en train de visualiser. Son raccourci est la combinaison ALT-H.


MenuOptions
OPTIONS

C`est ici que l`on change aussi bien le lecteur dans lequel la disquette à protéger est insérée, le type de la disquette, mais aussi le code de protection de celle-ci. La longueur de la chaîne est limitée à 490 caractères. Son raccourci est la combinaison ALT-O ou le click droit de la souris. Entrer des modifications si nécessaire et valider avec l`option OK ou la touche  ESC  pour sortir sans modification.


MenuAction
LANCER

Lancer la Protection

Comme son nom l`indique, permet d`effectuer le cryptage de la disquette. Son raccourci est la combinaison ALT-L..

Lancer la Deprotection

Supprime la protection mise en place avec la commande précédente. Attention, les données présentes seront perdues. Avant de déprotéger la disquette, supprimer tous les fichiers existants. Son raccourci est la combinaison ALT-D

A Propos de

Vous donne des informations complémentaires.

Quitter

Permet de sortir du logiciel.


UnitPirates
PIRATES.TPU

VAR	Lecteur: CHAR;

Codesecret: STRING;

Nom: STRING[20];

Chemin: STRING;

FUNCTION TEST: BOOLEAN;	{TRUE ou FALSE}

FUNCTION NUMERODISK: BYTE	{1..255}

PROCEDURE FAUX;

FUNCTION SAUVENOM: BOOLEAN

FUNCTION LITNOM: BOOLEAN;

Les fonctions suivantes ne sont pas disponibles pour Piratesw.tpw:

FUNCTION SAUVEDISK: BOOLEAN;

FUNCTION LITDISK: BOOLEAN;

- Lecteur représente le lecteur dans lequel la disquette `plombée` est insérée. Par défaut il est `A`. Il revient à vous programmeur de le modifier selon vos utilisations.

- Codesecret est le code que vous avez entré lors de l`utilisation de `PROTECTW.EXE` ou `PROTECT.EXE` dans la disquette `plombée`. Par défaut il est initialisé à `Code-Cles nicolas`. L`écriture MAJ/MIN a une importance et sa taille est limitée à 490 caractères.

- Nom est utilisé par les procedures LITNOM et SAUVENOM

- Chemin représente le répertoire de travail de votre programme. Utilisé par les procédures SAUVEDISK et LITDISK.

- TEST est une fonction renvoyant vrai ou faux selon que si les valeurs du `plombage` sont identiques à ceux rentrées précédemment lors de l'utilisation de `PROTECTW.EXE` ou `PROTECT.EXE`.

- NUMERODISK est spécialement utilisé pour l`installation d'un programme. En effet à chaque exécution de celle-ci, elle incrémente la disquette d'un numéro d`installation et renvoie le chiffre courant allant de 1 à 254. C`est au programmeur de préciser le nombre d`installation possible dans son programme `INSTALL`. Si elle renvoie la valeur 255, ceci signifie que l`opération s`est terminée par un échec, soit de lecture ou d`écriture de la disquette. Il est aussi de la responsabilité du programmeur de tester si la disquette est bien celle `plombée` (par TEST) et de régler tous les paramètres d`installation nécessaire à son programme avant de lancer la fonction Nunerodisk. En effet, celle-ci dès son utilisation incrémente le numéro d`identification du nombre d`installation avant de renvoyer le numéro de celle-ci dont elle a retranchée 1. Par défaut `PROTECT.EXE` installe le numéro `1` dans la disquette protégée.

- FAUX représente un affichage qui vous sera libre d`utiliser (version DOS).

- SAUVENOM sauvegarde dans la disquette le contenu de la variable  Nom . Elle est plutôt utilisées pour connaitre le nom de la personne qui installe le logiciel que vous avez crée. Ainsi il sera ultérieurement possible de connaitre la personne ayant utilisée le logiciel. Attention il est de votre recours de faire le cryptage du nom avant l`écriture sur disquette. La fonction vous renvoie un booléen sur l`état (de la réussite ou l`échec) de la procedure.

- LITNOM renvoie le nom entré lors de l`étape SAUVENOM a partir d`une disquette. Elle renvoie un état booléen sur le résultat de la lecture.

- SAUVEDISK plombe le disque dur. La fonction vous renvoie un booléen sur l`état (de la réussite ou l`échec) de la procédure.

- LITDISK vérifie les données enregistrées précédemment. La fonction vous renvoie un booléen sur létat (de la réussite ou l`échec) de la procédure.


UnitPiratesw
PIRATESW.TPW

Idem que `PIRATES.TPU`, mais cette fois-ci sans les procédures `FAUX` `SAUVEDISK` et `LITDISK`. Pour une utilisation sous `Windows 3.1` il vous suffit d`insérer `USES PIRATESW`. Les procédures de testes restent identiques à celles utilisées sous DOS.

Voici une procédure qui réagit après l`envoie d'une commande appelant Cm.Verif.

PROCEDURE Tprotectwindow.CmVerif(VAR Msg: Tmessage);

VAR S: ARRAY [0..50] OF CHAR;

VAR Number: INTEGER;

BEGIN

IF (TEST=TRUE)	THEN Strpcopy(S,`GOOD DISK`)

ELSE Strpcopy(S,`BAD DISK`);

MessageBox(HWindow,S,`Résultat`,Mb_OK);

Number:=NUMERODISK;

Strpcopy(S,`Le compteur est à plus 3`);

IF (Number=$00)	THEN Strpcopy(S,`Le compteur est à Zéro`);

IF (Number=$01)	THEN Strpcopy(S,`Le compteur est à Un`)

IF (Number=$02)	THEN Strpcopy(S,`Le compteur est à Deux`);

IF (Number=$03)	THEN Strpcopy(S,`Le compteur est à Trois`);

MessageBox(HWindow,S,`Résultat`,Mb_OK);

END;


C`est une disquette contenant des informations codées permettant d`empécher l`utilisation d`un logiciel par une personne non autorisée.


Install
INSTALL.EXE

{ DOS en Mode Réel }

PROGRAM INSTALL;

USES PIRATES;

BEGIN

{ Initialisation du lecteur }

Lecteur:='A';

{ Le code de la disquette }

Codesecret:='Code-Cles nicolas';

{ Teste si on a la bonne disquette }

IF TEST=FALSE THEN

Begin

WRITELN(`Vous avez une copie pirates SVP payer la Licence`);

{ et sortir par des procédures };

End;

{ Sinon on continue l`installation }

{ Nombre d`installation limitée à 5}

IF NUMERODISK>5) THEN

Begin

WRITELN(`Recontacter moi pour recharger la disquette`);

{ et sortir par des procédures };

End;

{ Demande d`identification de l`utilisateur }

WRITE('Entrer votre nom: ');

READLN(Nom);

IF SAUVENOM==FALSE THEN

Begin

WRITELN(`Verifier que la disquette est inscriptible');

{ et sortir par des procedures };

End;

{ Prépare le disque dur: Uniquement en Mode Réel }

WRITE('Entrer le répertoir d`installation (ex: c:\toto)  ');

READLN(Chemin);

{ Assurez-vous que le repertoire existe }

IF SAUVEDISK=FALSE THEN

Begin

WRITELN(`Votre disque dur m`est pas lisible`);

{ et sortir par des procedures };

End;

<Instr1>

<Instr2>

<Instr3>

<Instr4>

etc......

END.


Main
MAIN.EXE

{ DOS en Mode Réel }

PROGRAM MAIN;

USES PIRATES;

BEGIN

{ Initialisation du lecteur }

Lecteur:='A';

{Le code de la disquette}

Codesecret:='Code-Cles nicolas';

{ Teste si on a la bonne disquette, pas obligatoire ici }

{ Ceci permet d`avoir nbr Disk = nbr Licence }

IF TEST=FALSE THEN

Begin

WRITELN(`Vous avez une copie pirates SVP payer la Licence`);

{ et sortir par des procédures };

End;

IF LITNOM=FALSE THEN

Begin

WRITELN(`Vous avez un problème sur le lecteur A`);

{ et sortir par des procédures };

End;

{ Test sur Disque Dur Uniquement en Mode Réel }

WRITELN(`Bonjour `,Nom);

IF LITDISK=FALSE THEN

WRITELN(`Vous avez une copie pirates SVP payer la Licence`);

{ et sortir par des procedures };

<Instr1>

<Instr2>

<Instr3>

<Instr4>

etc......

END.


UnitPiratesc

Idem que pour Pirates.