IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

Script serial number


Sujet :

Outils Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut Script serial number
    Bonjour,

    Je viens de faire un script pour une installation de logiciel. Un logiciel alléger de 3 mo qui a son installation va télécharger tous ces composants en zip et les unzip dans le même dossier tous ca c’est ok.
    Apres j’ai voulu ajouté un serial donc j’ai commencé à chercher des tutoriaux sur le net qui mon emmenai a faire appel a la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Setup]
    UserInfoPage=true
     
    Avec un code du style:
     
    function CheckSerial(Serial: String): Boolean;begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + Serial + Chr(13), True);
    	Result := True;
    end;
    Tous ceci me génère une erreur mais de toute façon je suis pratiquement sur que ce n’est pas ce que je cherche car moi je veux utiliser une liste de login et de serial prédéfinis soit entré dans le script ou sur un fichier texte crypté héberger sur un ftp sécurisé.

    Pourrais-je avoir un petit coup de main si quelqu’un a une idée ?

    Cordialement
    Kyu

  2. #2
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut Up
    Bonjour,
    ThierryAIM Pourrez tu passez par là stp.
    J’ai suivi beaucoup de tes post pour evoluez sur mon exe. Ton aide me ferai le plus grand bien je pense vu ton niveau dans la matière.
    Cordialement
    Kyu

  3. #3
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par kyu666 Voir le message
    Un logiciel alléger de 3 mo qui a son installation va télécharger tous ces composants en zip et les unzip dans le même dossier tous ca c’est ok.
    C'est lequel des 2 qui télécharge les composants. Ton logiciel ou le script InnoSetup ?

    Ou tu veux savoir comment télécharger un fichier avec IS, c'est ça ou j'ai rien compris ?

  4. #4
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut re merci de ton passage
    Donc je te rassure tu as rien compris, lol, mais ne te fait pas de soucis j'ai
    souvent du mal a m'exprimer correctement.

    Je résume tout ce qui download c’est Ok j’ai même changé ton d’exe car unzip.exe ne fait pas correctement son travail en renommant les fichiers téléchargés j’utilise 7Z.exe + 7Z.dll beaucoup mieux car il conserve l’intégrité des noms.

    Mon problème vient d’un ajout que je veux faire protégeant mon exe.
    Je voudrai intégrer un login et un serial a l’installation qui correspondra à une liste créé par mes soins.

    Donc j’ai trouvé ces quelques infos :

    UserInfoPage=true « ce qui m’affiche une nouvelle page dans exe correspondant aux infos pc de l’utilisateur »

    A ceci j’ai voulu ajouter un serial qui ne s’affiche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function CheckSerial(Serial: String): Boolean;begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + Serial + Chr(13), True);
    	Result := True;
    end;
    Tous ceci me génère une erreur.
    Mais de toute façon je suis pratiquement sûr que ce n’est pas ce que je cherche, car moi je veux utiliser une liste de login et de serial prédéfinis soit entré dans le script ou sur un fichier texte crypté héberger sur un ftp sécurisé. Et ne pas utiliser les infos utilisateurs PC.

    Je ne c’est pas si j’ai été assez explicite cette fois ci.

    Cordialement
    Kyu

  5. #5
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    un début de réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    [Setup]
    UserInfoPage=true
     
    [Code ]
    function CheckSerial(Serial: String): Boolean;
    begin
    	if Serial = '12345' then Result:= true;
    end;
     
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      ErrorCode: Integer;
    begin
      if curpageID=wpUserInfo then
      begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + ExpandConstant('{userinfoserial}') + Chr(13), True);
      end;
      Result:=True;
     end;

  6. #6
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut Je mets mon code ca pourras peut etre t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{}
    AppName=Entreprise_Soft
    AppVersion=4.9
    ;AppVerName=Entreprise_Soft 4.9
    AppPublisher=Entreprise_Soft
    AppPublisherURL=URL
    AppSupportURL=URL
    AppUpdatesURL=URL
    DefaultDirName={pf}\Entreprise_Soft
    DefaultGroupName=Entreprise_Soft
    LicenseFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    InfoBeforeFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    InfoAfterFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    OutputDir=C:\Documents and Settings\Administrateur\Bureau
    OutputBaseFilename=FloGexe_setup
    SetupIconFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\funny.ico
    Password=123
    Compression=lzma
    SolidCompression=yes
    UserInfoPage=true
    VersionInfoCompany=Entreprise_Soft
    VersionInfoDescription=Entreprise_Soft
    VersionInfoProductName=Entreprise_Soft
    VersionInfoVersion=4.9.0.0
    WizardImageFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\WizModernImage-IS2.bmp
    WizardSmallImageFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\WizModernSmallImage-IS1.bmp
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    [Files]
    Source: Entreprise_Soft\7z.exe; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\7z.dll; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\Entreprise_Soft.exe; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [_ISToolDownload]
    Source: http://thierryaim.developpez.com/divers/1.zip; DestDir: {tmp}; DestName: 1.zip; Components: Telechargement\Fichier1
    ; NOTE: Je laisse tes fichiers de downloaad en exemple
     
    [Components]
    Name: Telechargement; Description: Telechargement Jeu; Types: full
    Name: Telechargement\Fichier1; Description: Fichier 1; Types: full
     
    [Icons]
    Name: {group}\Entreprise_Soft; Filename: {app}\Entreprise_Soft.exe
    Name: {group}\{cm:ProgramOnTheWeb,Entreprise_Soft}; Filename: URL
    Name: {group}\{cm:UninstallProgram,Entreprise_Soft}; Filename: {uninstallexe}
    Name: {commondesktop}\Entreprise_Soft; Filename: {app}\Entreprise_Soft.exe; Tasks: desktopicon
     
    [Run]
    Filename: {app}\7z.exe; Parameters: x {tmp}\1.zip; Components: Telechargement\Fichier1; Flags: runhidden
    Filename: {app}\Entreprise_Soft.exe; Description: {cm:LaunchProgram,Entreprise_Soft}; Flags: nowait postinstall skipifsilent
     
    [Registry]
    Root: HKLM; SubKey: SOFTWARE\(32bit Os); ValueType: none; Flags: uninsdeletekey
    Root: HKCC; SubKey: SOFTWARE\Wow6432Node\(64bit Os); ValueType: none; Flags: uninsdeletekey
     
    [UninstallDelete]
    Name: {app}; Type: filesandordirs
     
    [ Code]
    // Function generated by ISTool.
    function NextButtonClick(CurPage: Integer): Boolean;
    begin
    Result := istool_download(CurPage);
    end;
     
    Procedure URLLabelOnClick(Sender: TObject);
    var
      ErrorCode: Integer;
    begin
      ShellExec('open', 'URL', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
    end;
    {*** INITIALISATION ***}
    Procedure InitializeWizard;
    var
      URLLabel: TNewStaticText;
    begin
      URLLabel := TNewStaticText.Create(WizardForm);
      URLLabel.Caption := 'URL';
      URLLabel.Cursor := crHand;
      URLLabel.OnClick := @URLLabelOnClick;
      URLLabel.Parent := WizardForm;
      { Alter Font *after* setting Parent so the correct defaults are inherited first }
      URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
      URLLabel.Font.Color := clBlue;
      URLLabel.Top := WizardForm.ClientHeight - URLLabel.Height - 15;
      URLLabel.Left := ScaleX(20);
    end;
     
     
    [  Code] "ERROR"
    function CheckSerial(Serial: String): Boolean;
    begin
    	if Serial = '12345' then Result:= true;
    end;
     
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      ErrorCode: Integer;
    begin
      if curpageID=wpUserInfo then
      begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + ExpandConstant('{userinfoserial}') + Chr(13), True);
      end;
      Result:=True;
     end;

  7. #7
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Attention, tu as 2 fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function NextButtonClick(CurPageID: Integer): Boolean;
    mcLogFile n'est pas déclarer

  8. #8
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut re merci de ta reponse rapide
    Je viens juste de rentrer je vais voir de suite merci car je suis vraiment novice dans ce langage j'attaque à peine le langage C++.
    Je vais essayer merci, mais pour la liste de login serial prédéfinie as-tu une idée pour m'orienter stp? Le but est que j apprenne donc met moi sur la voie sans donner de réponse toute faite merci.
    J'adore apprendre et comprendre ce que je fait.

    Cordialement
    Kyu

  9. #9
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 991
    Par défaut
    histoire de prouver que ma solution était assez simple j'ai décidé de faire un petit exemple, au lieu d'y passé 15 minutes j'y ai passé trois quarts d'heure

    mais au final on a un setup qui récupère un mot de passe sur le serveur distant lorsque l'utilisateur à un accès valide. Mot de passe servant à décrypter les fichiers de l'installeur.
    Donc lorsque l'on a l'installeur sans user et serial valide il devient difficile de décrypter les fichiers.
    le sérial est envoyé sur le serveur distant sous forme de hash md5 et pas en clair

    il y a pas mal de solutions possible, j'ai choisi d'utiliser XML coté inno setup et PHP avec XML coté serveur.

    Dans le zip vous trouverez :
    - un exemple déjà compilé. les acces possibles pour l'installer sont :
    test test
    test2 test2

    - un fichier php qui permet sur un serveur distant de vérifier si l'utilisateur à un accès correct et de renvoyer la clé.

    - le script iss pour générer l'installeur.


    Plusieurs possibilités de l'améliorer :
    - arrêté d'envoyer la clé en clair mais utilisé un mini cryptage côté serveur et inno setup.
    - actuellement le nom d'utilisateur ne doit pas contenir d'espace ou de caractères spéciaux, il suffit d'envoyer les données sous forme XML pour parer à ce problème, ou d'encoder la valeur.


    Voila c'est somme toute basique mais fonctionnel

    le zip : http://www.toutenvrac.org/files/inno_serial.zip

Discussions similaires

  1. Serial number dans ProInstall
    Par Freyer dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 21/10/2009, 18h45
  2. récuperer le Serial Number de mon hard Disk
    Par mikky dans le forum Composants
    Réponses: 4
    Dernier message: 15/10/2009, 12h59
  3. recup serial number disque physique
    Par ighost dans le forum Débuter
    Réponses: 8
    Dernier message: 31/07/2008, 17h23
  4. Set serial Number sur une disquette
    Par Cpet dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/12/2004, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo