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

Langage Perl Discussion :

Empecher la visualisation du code d'un script PERL


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut Empecher la visualisation du code d'un script PERL
    Bonjour à tous,

    J'ai écrit des scripts Perl et je souhaiterai empecher la lecture (cad empecher de lire le code, pas d'éxécuter les scripts) de ces scripts par n'importe qui (je suis sous WInXP). Y-a-til une méthode pour le faire? J'ai cherché rapidement, mais je n'ai pas trouvé de début de piste..

    J'imagine pourtant que ca doit être possible...
    Merci d'avance!

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    deux soluces de ma part. Tu changes les droits ( dans propriete) ou bien tu le converti en exe.
    Si d'autres personnes ont des solutions.

  3. #3
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    Contrairement à UNIX, je ne pense pas qu'on puisse en Windows,
    interdire la lecture et permettre l'exécution

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par HRS
    Contrairement à UNIX, je ne pense pas qu'on puisse en Windows,
    interdire la lecture et permettre l'exécution
    je viens de verifier, bah sous windows, le droit d'execution est toujours lié au droit de lecture.
    derniere possibilité, exe .
    Qu'elle est l'intérêt sinon d'empecher la lecture??

  5. #5
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Prenons le cas d'un logiciel écrit à base de script Perl qu'on voudrait prêter à un client pour qu'il le teste... Si on pouvait éviter qu'il regarde dans le code source...
    Pour la solution de l'EXE, j'imagine que c'est plus compliqué que de changer l'extension ?

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tu install le module PAR et ensuite la commande c'est
    je crois

    Voilà, pas tres compliqué 8)

  7. #7
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Je vais me renseigner sur ce module. Merci en tout cas!

    Si vous avez d'autres idées, par ailleurs, je suis évidemment preneur!

  8. #8
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Par contre, mes scripts s'exécutent au travers d'une interface Web.. du genre http://localhost/monscript.pl

    si je modifie en EXE, ça ne marchera plus l'accès par le web,non?

  9. #9
    Invité
    Invité(e)
    Par défaut
    S'ils s'exécutent en CGI, pas besoin de convertir, les sources ne sont pas visibles, on ne voit que le code de sortie des scripts (HTML ou XML résultant)

  10. #10
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    oui, en fait, je n'ai pas été clair :ils ont accès physiquement à la machine sur laquelle sont les scripts et peuvent donc y accéder et éditer les fichiers..

  11. #11
    Invité
    Invité(e)
    Par défaut
    Ah, effectivement, ça change tout. Je n'ai jamais testé, mais les CGI peuvent être des exe, mais il faut le spécifier au serveur web. C'est Apache ou IIS ?

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    je sais pas. j'ai déjà vu des exe qui s'execute en cgi donc ça dois etre possible je crois, test et tu verra.

  13. #13
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par kuzco
    Ah, effectivement, ça change tout. Je n'ai jamais testé, mais les CGI peuvent être des exe, mais il faut le spécifier au serveur web. C'est Apache ou IIS ?
    Apache2

  14. #14
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon je viens de tester un exe et ça marche correctement. Je suis sous apache2 (sous linux) et j'ai rien configuré dans apache2, donc pas de soucis

  15. #15
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Ok, cool. J'ai cherché également et je suis parti sur la piste de l'utilisation d'un obfuscateur afin de transformer mon code en 1 code illisible (et au passage, je ne compte pas les blagues que j'ai pu lire lors de mes recherches, du style "Un parfait obfuscateur pour Perl.. c'est Perl lui-même! ).

    Si je vous soumets ce genre de code:
    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
    #!C:\perl\bin\perl.exe -w
    print "\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x74\x79\x70\x65\x3a\x20\
    x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x0a\x0a";use forme;use File::stat;use Time::localtime;print "\x3c\x48\x54\x4d\x4c\x3e";forme::haut();open(FIC2,"\x3c\x2e\x2e
    \x2f\x73\x74\x61\x74\x73\x2e\x74\x78\x74");
    while(defined($OOO00=<FIC2>)){chomp $OOO00;$OO00[$OO0000]=$OOO00;$OO0000++;}close FIC2;open(FIC,"\x3c\x2e\x2e\x2f\x63\x6f\x6e\x66\x67\x61\x6c\x2e
    \x74\x78\x74");
    while(defined($OOO00=<FIC>)){chomp $OOO00;$OOO=$OOO00;last;}@OOO=split(//,$OOO);
    $OOO00O=splice(@OOO,0,1);if($OOO00O eq "\x3c"||$OOO00O eq "\x3e"){$OOO=join("",@OOO);}close FIC;open(FIC3,"\x3c\x2e\x2e\x2f\x66\x61\x6d\x69\x6c\x6c\x65
    \x6d\x61\x63\x2e\x74\x78\x74");$OO0O=0;
    while(defined($OO000OO=<FIC3>)){chomp $OO000OO;($OOO0O[$OO0O],undef)=split(/\*/,$OO000OO);
    $OO0O++;}close FIC3;print "\x3c\x43\x45\x4e\x54\x45\x52\x3e\x3c\x54\x41\x42\x4c\x45\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74\x65\x72\
    x20\x62\x6f\x72\x64\x65\x72\x3d\x30\x20\x77\x69\x64\x74\x68\x3d
    \x31\x30\x30\x25\x3e";print "\x3c\x54\x52\x3e";print "\x3c\x54\x44\x20\x61\x6c\x69\x67\x6e\x3d\x63\x65\x6e\x74
    \x65\x72\x3e";print "\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x33\x3e\x3c\x69\x3e
    \x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x53\x63\x72\x69\x70\x74\x73
    \x20\x50\x72\x6f\x74\x65\x63\x74\x65\x64\x2f\x63\x6f\x6e\x66\x69
    \x67\x6d\x65\x6e\x75\x2e\x70\x6c\x27\x3e\x3c\x63\x65\x6e\x74\x65
    \x72\x3e\x43\x6f\x6e\x66\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\x20
    \x64\x65\x20\x4e\x65\x74\x77\x6f\x72\x6b\x73\x20\x49\x6e\x76\x65
    \x6e\x74\x6f\x72\x79\x3c\x2f\x63\x65\x6e\x74\x65\x72\x3e\x20\x3c
    \x2f\x66\x6f\x6e\x74\x3e\x3c\x2f\x69\x3e\x3c\x2f\x61\x3e";
    Est-ce que vous pensez que c'est déchiffrable facilement? (je sais que c'est déchiffrable, mais si ca se déchiffre en 30s, il n'y a pas d'intéret... et comme je ne suis pas un pro du cryptage de données....)

  16. #16
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    la meilleur solution est qd même un exe. si t'as une maudif à faire, y a juste à voir regarder son script et refaire l'exe. sur ton dechiffrage, je peux voir plusieurs infos qd même. Et si j'ai vraiment envie de voir ton code, bah j'ai au moins 30 sec pour chercher à mieux le dechiffrer

  17. #17
    Invité
    Invité(e)
    Par défaut
    A première vue, la quasi-totalité des caractètres ont été transformés en hexa, mais en tout cas, ça ne me donne pas envie d'essayer de déchiffrer...

    Par contre, c'est quoi l'URL vers ton obfuscateur ?

  18. #18
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ca a l'air ultra simple à déchiffrer... Un passage pour retransformer les caractères en hexa, un autre pour perltidifier la chose... Déjà un module qui fait mieux, c'est Acme::Eyedrops, en plus tu peux lui spécifier la forme que doit avoir ton script... Va voir le "99 bottles" pour un résultat de ce module : http://www.99-bottles-of-beer.net/language-perl-737.html . Ca a au moins l'avantage d'être joli...

    De toutes façon, tant que tu ne passes pas par un executable, on peut toujours faire un perl -MO=Deparse sur ton code... Essaie pour voir.

    --
    Jedaï

  19. #19
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Je pense également que le passage en exe est la meilleure solution, ton code n'est peut être pas déchiffrable en 30secondes mais très facilement en 10 minutes, ce n'est pas une solution vraiment viable...

    Au fait, pourquo veux tu cacher tes sources, si ce n'est pas indiscret ?

  20. #20
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Salut,

    L'adresse vers l'obfuscateur :
    http://liraz.org/obfus.html

    Ensuite, je veux cacher mes sources car en fait, il s'agit d'un logiciel qui sera vendu à des clients. Mais 1 client souhaite qu'on lui "prête le logiciel" pour qu'il l'essaye. On se dit donc qu'il serait mieux de ne pas leur filer les sources...

    Donc, à votre avis, l'EXE? Même si c'est que des scripts CGI?

    AUtre question qui me vient à l'esprit : supposons que je passe mes sources sous un Linux. Là, avec le CHMOD qui va bien, je pourrai empecher la lecture tout en autorisant l'exécution, c'est bien ça? Si des gens récupèrent ces sources de Linux, et les mettent sur un WIndows, quels sont les alors droits que possède l'utilisateur sur ces fichiers sous windows? Ni lecture, ni exécution? Tout?

    C'est peut-etre une question à la con, mais bon...

Discussions similaires

  1. exécuter code graphviz avec script perl ?
    Par Caro81 dans le forum Langage
    Réponses: 12
    Dernier message: 06/05/2010, 10h28
  2. empecher de visualiser le code HTML
    Par legouvernueur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/03/2006, 00h37
  3. Return code d'un script sur serveur distant
    Par Koobor dans le forum Linux
    Réponses: 2
    Dernier message: 10/11/2005, 10h09
  4. empecher la visualisation du code source
    Par Teo dans le forum ASP
    Réponses: 7
    Dernier message: 24/10/2003, 15h11

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