Guide d intégration. Protection de logiciels Windev 5 à Windev 15 avec CopyMinder. Contact commercial : Tél. : 02 47 35 70 35 Email : com@aplika.



Documents pareils
CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

OPTENET DCAgent Manuel d'utilisateur

Application de lecture de carte SESAM-Vitale Jeebop

Les messages d erreur d'applidis Client

Plan du cours. Historique du langage Nouveautés de Java 7

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Backup Exec 2014 Management Pack for Microsoft SCOM. - Guide de l'utilisateur

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

Manuel d'installation

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

ETI/Domo. Français. ETI-Domo Config FR

Windows Front-End Installation Guide HOPEX V1R1 FR

Compte-rendu de projet de Système de gestion de base de données

Interface PC Vivago Ultra. Pro. Guide d'utilisation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Manuel UniKey. Version 7.20 IOLOCK

ST1 (Installation-Protection) 1 ST1. Version 23. Janvier Calcul de structures. Installation Protection S E T R A

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Chapitre 10. Les interfaces Comparable et Comparator 1

Guide d installation de Windows Vista /Windows 7

Plateforme PAYZEN. Définition de Web-services

Introduction à JDBC. Accès aux bases de données en Java

Sélection du contrôleur

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Programmer en JAVA. par Tama

Guide de l'agent de notification

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

Application web de gestion de comptes en banques

(Fig. 1 :assistant connexion Internet)

Aide à l installation et à la migration en HelloDoc 5.60

FileSender par RENATER - Guide utilisateur

Programme Compte bancaire (code)

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

FAQ Trouvez des solutions aux problématiques techniques.

VD Négoce. Description de l'installation, et procédures d'intervention

4D v11 SQL Release 5 (11.5) ADDENDUM

Manuel de l'application SMS

contact@nqicorp.com - Web :

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

UE Programmation Impérative Licence 2ème Année

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique et programmation : les bases (VBA) Corrigé

Tutorial et Guide TeamViewer

Chapitre 2. Classes et objets

Guide de l'administrateur Citrix Personal vdisk 5.6.5

Guide de dépannage. 3SKey. Connectivity

Installation FollowMe Q server

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

GESTION DES FICHIERS C/UNIX

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

TP3 : Manipulation et implantation de systèmes de fichiers 1

Microsoft Windows NT Server

Les nouveautés de Sage DS Version 2

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

TDB-SSI LES EXTENSIONS

Sharpdesk V3.3. Guide d installation Push pour les administrateurs système Version

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

TecLocal 4.0. Nouveautés de la version 4.0 (notes de mise à jour)

ArcGIS 10.1 for Server

Mobyt Intégration par Webservice TABLE DES MATIERES

1. Comment accéder à mon panneau de configuration VPS?

LSM RELEASE NOTES LOGICIEL LOCKING SYSTEM MANAGEMENT

Wildix Web API. Guide Rapide

eps Network Services Alarmes IHM

Procédure d Installation et de mise à jour du client CAN-8 32 bits

Installation et configuration du logiciel BauBit

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

SafeGuard Enterprise Web Helpdesk. Version du produit : 5.60

FANTEC HDD-Sneaker MANUEL D'UTILISATION. Comprend: Guide d'installation de materiel Disque dur Formatage manuel PCClone EX Guide d'installation

Mobyt Intégration HTTP TABLE DES MATIERES

Définition des Webservices Ordre de paiement par . Version 1.0

Préparer la synchronisation d'annuaires

Programmation par les Objets en Java

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

INSTALLATION ET CONFIGURATION D'UN SERVEUR FTP

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Configuration d'un annuaire LDAP

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Recherche dans un tableau

contact@nqicorp.com - Web :

Windows sur Kimsufi avec ESXi

Stockage du fichier dans une table mysql:

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

INSTALLER UNE BIBLIOBOX

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Manuel d'installation

Sauvegarder automatiquement ses documents

SYSTÈME DE GESTION DE FICHIERS

Héritage presque multiple en Java (1/2)

TP4 : Installer configurer un contrôleur de domaine

Kaspersky Tablet Security pour Android

Télécharger et Installer OpenOffice.org sous Windows

Transcription:

Guide d intégration Protection de logiciels Windev 5 à Windev 15 avec CopyMinder Contact commercial : Tél. : 02 47 35 70 35 Email : com@aplika.fr Contact Technique : Tél. : 02 47 35 53 36 Email : support@aplika.fr Version 2.01 du 11/03/2010 La Foltière - 37270 AZAY SUR CHER Tél. 33(0)2 47 35 70 35 - Fax 33(0)2 47 35 70 25 - e-mail : aplika@aplika.fr

Guide d intégration CopyMinder WINDEV 1. Introduction... 3 2. Champs... 3 2.1. Options du test de protection... 3 2.2. Options de lecture de la zone de données sécurisée... 3 3. Sommaire des méthodes... 4 4. Code exemples Windev... 4 5. Détail des méthodes... 6 2

Guide d intégration CopyMinder WINDEV 1. Introduction L'API est implémentée grâce à l appel à cm.dll. Vous trouverez ce fichier dans le dossier "Modules" du dossier d'installation de CopyMinder. cm.dll est le fichier à protéger en utilisant la plateforme développeur CopyMinder, en utilisant la méthode API. Ce fichier devra être placé dans le dossier contenant votre fichier EXE. La suite de ce chapitre détaille l'interface entre la librairie CopyMinder et votre application. Pré-requis La librairie CopyMinder ne contient que des méthodes statiques et des champs, elle ne peut être instanciée. 2. Champs 2.1. Options du test de protection Passez les champs suivants comme paramètres des options dans CopyMinder.checkProtection () et CopyMinder.checkProtectionAlg1 () pour modifier le comportement de ces méthodes. Champs public static final int FORCE_WEB_ACCESS Commentaires Force le programme protégé à se connecter au serveur Web CopyMinder pour effectuer une vérification de la protection. public static final int NO_EXEC_CHECK Ne décrémente pas ou ne vérifie pas le compteur d'exécutions. public static final int NO_EXPIRY_CHECK Ne vérifie pas la date d'expiration. public static final int NO_NEW_NET_USER N'incrémente pas le nombre d'utilisateurs réseaux (installations réseaux uniquement). Utilisez le séparateur "OR" pour passer plus d'une option à la fois, par exemple CopyMinder.checkProtection(CopyMinder.FORCE_WEB_ACCESS CopyMinder.NO_EXPIRY_CHECK); 2.2. Options de lecture de la zone de données sécurisée Utilisez les champs suivants comme paramètres flag de la méthode CopyMinder.Sdaread(). Champs public static final int GET_SDA_SIZE Commentaires Retourne la taille totale de la zone de données sécurisée. Aucune donnée n'est lue dans le tampon spécifié. 3

3. Sommaire des méthodes getlasterror Retourne un entier indiquant le succès ou l'échec du dernier appel de l'api. checkprotection Réalise un test de la protection. checkprotectionalg1 - Réalise un test de la protection avec une réponse algorithmique afin d'accroître la sécurité. getdid Obtient l'identifiant du développeur qui a protégé le programme. getproductcode Obtient le Code Produit du programme protégé. GetProductKeyA Obtient la Clé Produit de cette installation en caractère ANSI. getfeatures Obtient les paramètres de fonction de cette installation. getlocalexecsleft Obtient le nombre d'exécutions possible de l'application avant qu'un accès Internet soit nécessaire. getwebexecsleft Obtient le nombre d'exécutions restantes pour ce programme sur le serveur web CopyMinder. getexpirydate Obtient la date d'expiration du programme. getlastsuccess Obtient la date et l'heure de la dernière vérification réussie de la protection. getnextwebaccess Obtient la date et l'heure auxquelles le programme devra se connecter à Internet. sdaread Lit les données de la zone de données sécurisée. sdawrite Ecrit les données dans la zone de données sécurisée. isittrial Renseigne si cette installation a été activée comme une évaluation. endnetworkuser Pour les installations réseaux décrémente le nombre d'utilisateurs réseaux simultanés. getextendederror Obtient les informations étendues pour la dernière erreur. 4. Code exemples Windev // Options de CM_CheckProtection et CM_CheckProtectionAlg1 // Reportez vous au manuel pour plus de détails // Déclaration des constantes Option des fonctionsfonctions CM_CheckProtection et CM_CheckProtectionAlg1 CONSTANT CopyMinderDefault = 0 // Test de protection par défaut ForceWebAccess = 1 // Force CopyMinder à accèder au serveur CopyMinder (bit0 à 1) NoExecCheck = 2 // Ne décrémente pas le compteur d'exécution (bit1 à 1) NoExpiryCheck = 4 // Ne test pas la date d'expiration (bit2 à 1) NoNewNetUser = 8 // Ne décrémente pas le nombre d'utilisateurs réseau simultanée (bit 3 à 1) FIN 4

// Flags à utiliser pour la fopnction CM_SDA_Read() SDAReadFlagsEXPRESS est composé de // Lecture de la zone de données // Par défaut la taille de la zone de données est limité à 256 octets cette limite peut être modifiée si vous avez besoin d'une plus grande taille // Attention toutefois plus la taille de la zone est grande plus sa lecture peut ralentir votre application GetSDASize est un entier système END SDAReadFlagsEXPRESS.GetSDASize=1 // déclaration du champ stockant le nom de la DLL de protection utilisée nomdllprotect32 est une chaîne // Initialisation de la DLL de protection // cm.dll ( version 32 bits de windows) nomdllprotect32="cm.dll" Puis déclarer les procédures Globales comme suit : //************************************************************************************** ********************************************************************** // Résumé : Facilite la gestion des messages d'erreur de CopyMinder // : //DisplayError (<ret_code> est entier) // : // ret_code (entier) : <indique le rôle du code d'erreur> // ext_err (entier sans signe sur 4 octets) : <indiquez ici le rôle de ext_err> PROCEDURE DisplayError(ret_code is int) SWITCH ret_code CASE 81: Info("Erreur! DLL copyminder non présente...") CASE 88: Info("Erreur! Ce programme n'a pas été protégé par CopyMinder. Veuillez protégez la DLL copyminder avec la plateforme locale copyminder.exe") CASE 546: Info("Erreur! Vous avez annuler le test de protection en ne rentrant pas de clé produit.") OTHER CASE: Info("Une erreur est apparu lors du test de protection CopyMinder.","Erreur : " + ret_code) END PROCEDURE ProtCheck() // Déclaration des variables dans lesquelles seront retournés les résultats des fonctions // ChargeDLL et AppelDLL32 hlib1,ret_code sont des entiers système // Chargement de la DLL. hlib1=chargedll(nomdllprotect32) // Contrôle si la DLL a bien été chargée SI hlib1=0 ALORS Info("Impossible de charger la DLL CopyMinder", "Fermez, copiez la DLL dans le répertoire de l'exe, puis relancez le programme protégé") RESULT -1 FIN // On appelle la fonction de test de protection et de lecture du bloc DRIS. flags est un entier flags = 0 ret_code=appeldll32(nomdllprotect32,"cm_checkprotection",&flags) // Si le code retour est <> de 0 alors la clé est absente ou incorrecte. SI ret_code<>0 ALORS // Erreur lors du test de la protection DisplayError(ret_code) FIN // Si le test de protection est OK alors on accède au paramètre de la licence SI ret_code=0 // Les variables de la licence sont passées par adresse. ProductKey est une chaîne fixe sur 30 ret_code=appeldll32(nomdllprotect32,"cm_getproductkeya",&productkey) Info("clé produit : " + ProductKey) 5

Features est un entier ret_code=appeldll32(nomdllprotect32,"cm_getfeatures",&features) Info("Mot de fonction : " + Features) //Info("Test OK!") FIN DéchargeDLL(hlib1) 5. Détail des méthodes GetLastError Retourne le résultat du dernier appel de l'api. static int getlasterror() Aucun Le résultat du dernier appel de l'api. Zéro indique un succès, d'autres valeurs indiquent la cause de l'erreur. Voir la Base de connaissances CopyMinder pour les détails à propos des erreurs. Important - Il est conseillé d'appeler cette méthode après chaque appel de l'api afin de vérifier que cet appel a été réalisé avec succès. Si cette méthode retourne une autre valeur que zéro, la valeur retournée par la dernière méthode est indéfinie. CheckProtection Réalise un test de la protection en se connectant au seveur web CopyMinder afin de vérifier si des restrictions ou des paramètres de mise à jour ont changé depuis le dernier accès web. static int checkprotection( int options ) Options passe une ou plusieurs constantes listées dans ce chapitre afin d'induire un comportement spécifique. Passe zéro pour réaliser un test simple de la protection sans comportement particulier. Zéro indique un succès, les autres valeurs indiquent la cause de l'erreur. Vois la base de connaissances CopyMinder pour plus de détails. Cette valeur est la même que celle retournée par l'appel de getlasterror() immédiatement après l'appel de checkprotection(). Important - Vous devez appeler cette méthode ou checkprotectionalg1() au moins une fois dans votre programme avant d'appeler une autre méthode. Sans cela, les valeurs retournées par cette méthode seront indéfinies. checkprotectionalg1 Réalise un test de la protection avec une sécurité accrue, se connectant au serveur web CopyMinder si nécessaire et mettant à jour les paramètres modifiés depuis le dernier accès web. 6

static int checkprotectionalg1( int options, int[] algvars ) Options - passe une ou plusieurs constantes listées dans ce chapitre afin d'induire un comportement spécifique. Passe zéro pour réaliser un test simple de la protection sans comportement particulier. Algvars un tableau de variables de type entier à utiliser dans l'algorithme Le résultat de l'algorithme. Important Vous devez appeler cette méthode ou checkprotection() au moins une fois dans votre programme avant d'appeler une autre méthode. Sans cela, les valeurs retournées par cette méthode seront indéfinies. GetDid Retourne l'identifiant du développeur qui a protégé ce programme. static String getdid() Votre identifiant développeur. getproductcode Retourne le Code produit du programme protégé. static String getproductcode() Le Code Produit du programme protégé. getproductkeya Retourne la Clé Produit du programme protégé pour cette installation. static String getproductkey() 7

La Clé Produit de l'installation. getfeatures Retourne les paramètres des fonctions d'installation. static int getfeatures() Les paramètres des fonctions de cette installation. getlocalexecsleft Retourne le nombre d'exécutions autorisées du programme protégé avant qu'une connexion Internet soit nécessaire. static int getlocalexecsleft() None. Le nombre d'exécutions autorisées du programme protégé avant qu'une connexion Internet soit nécessaire. Le nombre total d'exécutions possibles du programme protégé est la somme des valeurs retournées par CopyMinder.getLocalExecsLeft() et CopyMinder.getWebExecsLeft(). getwebexecsleft Retourne le nombre d'exécutions restantes sur le site web CopyMinder pour ce programme. static int getwebexecsleft() Le nombre d'exécutions restantes sur le site web CopyMinder pour ce programme Le nombre total d'exécutions possibles du programme protégé correspond à la somme des valeurs CopyMinder.getLocalExecsLeft() et CopyMinder.getWebExecsLeft(). getexpirydate Retourne la date et l'heure d'expiration du programme protégé. 8

static long getexpirydate() La date d'expiration du programme protégé en millisecondes depuis le 1 er janvier 1970, 00:00:00. getlastsuccess Retourne la date et l'heure de la dernière vérification réussie de la protection. static long getlastsuccess() La date et l'heure de la dernière vérification réussie de la protection en millisecondes depuis le 1 er janvier 1970, 00:00:00. getnextwebaccess Retourne la date et l'heure du prochain accès au serveur web CopyMinder planifié pour une vérification de la protection. static long getnextwebaccess() La date et l'heure du prochain accès au serveur web CopyMinder en millisecondes depuis le 1 er janvier 1970, 00:00:00. Après cette date/heure, les installations activées en mode "standard" tenteront de se connecter au serveur web CopyMinder lorsqu'un appel à CopyMinder.checkProtection() ou CopyMinder.checkProtectionAlg1() sera réalisé. sdaread Lit les données contenues dans la zone de données sécurisée du programme protégé. static int sdaread( byte[] buffer, int offset, int bytestoread, int flags ) buffer un tableau d'octets qui contiendra les données après une lecture réussie. offset index du premier octet à lire. Les index démarrent à zéro. bytestoread le nombre d'octets à lire. flags - passe CopyMinder.GET_SDA_SIZE pour induire un comportement spécifique. Passe zéro pour réaliser une lecture sans comportement particulier. 9

Le nombre d'octets lus. La valeur retournée peut être inférieure à la valeur passée dans bytestoread si vous tentez de lire au-delà de la fin de la zone de données sécurisée. sdawrite Ecrit les données dans la zone de données sécurisée du programme protégé. static int sdawrite(byte[] buffer, int offset, int bytestowrite, int flags) buffer un tableau d'octets contenant les données à écrire. offset index du premier octet à écrire. Les index démarrent à zéro. bytestowrite le nombre d'octets à écrire. flags réservé pour un usage ultérieur. Doit être initialisé à zéro. Le nombre d'octets écrits. isittrial Retourne une valeur indiquant si cette installation a été activée comme évaluation. static boolean isittrial() Valeurs de retour true si l'installation a été activée comme évaluation. false sinon. endnetworkuser Pour les installations réseaux décrémente le nombre d'utilisateurs réseaux simultanés maximum. static int endnetworkuser() Zéro confirme la réalisation avec succès, les autres valeurs indiquent la cause de l'erreur. Voir la base de connaissances CopyMinder pour le détail de ces erreurs. Cette valeur est la même que celle retournée par l'appel de getlasterror(), immédiatement après l'appel de endnetworkuser(). 10

getextendederror Retourne les informations étendues pour la dernière erreur. static String getextendederror() Une chaîne contenant les informations étendues de la dernière erreur. Pour beaucoup d'erreurs, la signification de l'erreur étendue peut ne pas être évidente. Néanmoins, il est très utile de communiquer cette information au support technique lorsque vous le contactez au sujet d'un dysfonctionnement avec votre programme protégé. 11

La Foltière - 37270 AZAY/CHER Tél. 02 47 35 70 35 - Fax 02 47 35 70 25 e-mail : aplika@aplika.fr www.aplika.fr 12