PHP Obfuscateur : le code ne sera plus visible...

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
21
nov.
2001
PHP
Son principe est simple, remplacer dans vos scripts PHP tous les noms de fonctions et de variables par des codages MD5 sur 8 caractères. Ce qui a pour effet de rendre le code complètement incompréhensible et par conséquent non modifiable.
Bien que ce type de procédé ne soit pas vraiment dans l'esprit Open Source, il peut s'avérer utile à ceux qui souhaitent vendre leurs développements et assurer leur maintenance.

Note du modérateur : merci à circle.ch pour l'info

Update du modérateur: Rendons à César ce qui lui appartient, la nouvelle a apparemment été reprise de phpinfo.net.

Aller plus loin

  • # plop

    Posté par  (site web personnel) . Évalué à 10.

    > [...]Bien que ce type de procédé ne soit pas vraiment dans l'esprit Open Source[...]

    Effectivement.. au fait, peut-on considérer le compilateur comme une simple moulinette d'obfuscation ? Parce que quitte à obsfusquer, autant y aller franchement.
  • # sed

    Posté par  (site web personnel) . Évalué à 10.

    Faites du sed à la place du PHP, ce sera imbitable sans la moindre obfuscation ! ;-)
  • # Po compris

    Posté par  . Évalué à 1.

    Je ne vois pas trop l'interet... autant ne pas fournir les sources. L'un des interets de l'open source est tout de meme de pouvoir modifier le code en cas de probleme.. puis en fonction de la licence renvoyer le nouveau code à la société détentrice du logiciel.

    J'ai rate quelque chose ?
    • [^] # Re: Po compris

      Posté par  . Évalué à 7.

      Si ton client fait tourner ton application chez lui, alors tu es obligé de lui fournir les fichiers sources. Il peut alors aller les lire.

      Ceci-dit, beaucoup de gens sont contre. Il est un peu ridicule d'empècher le client d'aller voir dedans, ça oblige a régler soit même les problèmes et à faire toute une gymnastique pour retrouver les vrai erreurs.

      En plus, si l'application est un peu grosse, alors personne n'ira la pomper. C'est trop de travail.
      • [^] # Re: Po compris

        Posté par  . Évalué à -2.

        Php est un langage serveur. On s'en fout du résultat produit ensuite par le serveur et envoyé au client, car il ne contient pas de véritable valeur ni les fonctions..
    • [^] # Re: Po compris

      Posté par  . Évalué à 10.

      Oui, tu te trompes de cible :)

      C'est un outils destiné au gens qui font du fermé avec des langages de scripts. Comme les sources sont lisibles, ils aiment pas. Ce genre d'outils leur permet de rendre le tout incomprehensible.

      Les obfuscateurs sont égalemement pas mal utilisés en java.

      http://www.acm.org/crossroads/xrds4-3/codeob.html(...)
      http://www.devx.com/free/products/pgReview.asp?ReviewID=12591(...)

      dans le même genre de *****, signalons le watermarking de l'applciation :
      http://www.cs.arizona.edu/~collberg/Research/Obfuscation/Resources.(...)
      • [^] # Re: Po compris

        Posté par  (site web personnel) . Évalué à 9.

        C'est surtout un outil totalement inutile.
        Certes c'est très amusant, mais bon.

        Soit tu fais du logiciel libre ou open source, soit tu fais du propriétaire / code fermé et ton client ne peux pas utiliser ton code légalement. Je n'ai jamais vu un client piquer du code pour un produit ou une prestation qu'il a acheté.

        Si c'est pour se protéger du grand public des développeurs web occasionnels (qui a dit du dimanche ?), alors il suffit de ne pas diffuser le code.

        Et si vraiment tu as peur de celà, tu développes en un langage que tu peux compiler, comme C (et en plus tu auras souvent de meilleures performances).

        Sinon, il existe aussi ce genre de produit pour de nombreux autres langages, comme le C, et qui sont tout aussi inutiles.
        • [^] # Re: Po compris

          Posté par  . Évalué à -3.

          C'est surtout un outil totalement inutile.

          Mais si, ca permet de facturer une option supplémentaire sur un projet :)
          • [^] # Re: Po compris

            Posté par  (site web personnel) . Évalué à 3.

            C'est surtout un outil totalement inutile.
            De ton point de vue peut etre (moi non plus je ne pense pas avoir un jour un quelconque interêt à en utiliser).
            Mais la question revient assez régulièrement sur fr.comp.infosystemes.www.auteurs.php donc si des gens cherchent ce produit, il est normal que des gens le développent...
        • [^] # Re: Po compris

          Posté par  . Évalué à 2.

          Je n'ai jamais vu un client piquer du code pour un produit ou une prestation qu'il a acheté.


          Effectivement, mais admettons que ce client se fasse hacker son serveur par TON concurrent, lui il sera peut-etre tres interesse par ton code.

          --
          Chuchi
        • [^] # Pas si simple

          Posté par  . Évalué à 1.

          > Je n'ai jamais vu un client piquer du
          > code pour un produit ou une prestation
          > qu'il a acheté

          Parfois, des éditeurs qui vendent leurs produits souhaitent que les sources ne soient pas disponibles, juste pour s'assurer qu'elles ne seront pas modifiées par l'utilisateur final. Pourquoi ? Pour des questions de support, d'engagement de résultat et de SLA.

          J'ai rencontré ce cas plusieurs fois...
  • # Source de la news en français ??

    Posté par  . Évalué à 9.

    Je tiens quand même à préciser au modérateur (pas à brisco qui doit déjà le savoir...) que le texte intégral de la news en français vient de phpInfo, postée le 17 novembre.
    http://www.phpinfo.net/?p=archives&idnews=476(...)
    Voilà c'était juste pour dire.
  • # et l'interet ?

    Posté par  . Évalué à 1.

    le php est interpreté par le serveur donc le client, si il regarde la source de la page voit simplement du html...

    quel est donc l'interet ? ou alors j'ai rien compris ?
    • [^] # Re: et l'interet ?

      Posté par  (site web personnel) . Évalué à 1.

      Le serveur appartient a Alice, le script PHP est devellope par Bob, a la demande et pour Alice.

      Bob n'aime pas Alice (une histoire de fichier echange difficile a dechiffrer, ou Alice mettais un bon rateau a Bob), il veut pas que Alice lise sont PHP, il utilise ce truc qui masque tout, et ne permet qu'au posseseur du mot de passe (Bob) de lire les scripts PHP.

      Evidement toi, sur le site de Alice, tu ne vois rien de tout ca.
    • [^] # Re: et l'interet ?

      Posté par  (site web personnel) . Évalué à 1.

      Ne serait-ce pas pour distribuer le code tranquile sans craindre qu'il soit modifier ou même compris par le client...
      De toutes façon, il me semble que c'est réversible... Et même en php, à mon avis. Mais j'ai rapidement jeté un coup d'oeil dessus.
      D'ailleurs, il existe d'autres systèmes pour cacher les sources php. Je pense à phpcompiler qui compile en pseudo code pour windows (mais il n'y a plus de site. Je dois avoir quelque part les binaires qui fonctionnaient pas trop mal, mais si quelqu'un a les sources cela m'interesse. Elles sont introuvables sur internet) et puis j'ai vu d'autres trucs semblables sur source forge.
      • [^] # Re: et l'interet ?

        Posté par  . Évalué à 1.

        nop c'est pas reversible. Le md5 est utilise comme une fonction random pour renommer toutes les fonction/variable/constantes en des noms de 8 caracteres qui ne veulent rien dire (meme les noms de 9 cars et plus sont renommes en 8 caracteres). De plus, il enleve tous les commentaire et les retour a la ligne. De ce fait, le code en lui meme reste du pur php, mais ilisible pour les developpeur. Bien sur le developpeur garde chez lui a l'abri l'original de ses code sources.
        • [^] # Re: et l'interet ?

          Posté par  . Évalué à 1.

          Je doute que ce système soit réellement efficace. Après tout, il est parfaitement possible de "reverse-enginerer" du code compilé, et là on perd beaucoup plus que les noms de variables...

          Renommer juste les noms de variables doit rendre le code un peu plus compliqué à lire, mais c'est très loin d'être une mesure fiable et efficace si quelqu'un veut vraiment modifier ou comprendre le code.

          Et puis en plus je suis totalement contre le principe même de rendre volonrairement du code illisible. C'est idiot et immoral (cf la news sur RMS).
  • # Faites du perl

    Posté par  (site web personnel) . Évalué à 1.

    C'est facilement obfuscable sans moulinette

    bon -1 et je vais prendre chère sur mes xps mais il fallait que je la fasse (je précise aussi que j'adore perl)
  • # Totalement inutile

    Posté par  . Évalué à 1.

    Si vous voulez savoir ce qui est dedans de toutes façons c'est trivial.
    connaitre le nom des variables + commentaires c'est bien pour la lisibilité certes mais si vous décider de passer un peu de temps à faire du reverse enginering, cela ne devrait pas poser plus de probleme que cela.
    La preuve, de nombreux algos ont été démonté à partir de leur code assembleur (qui ne doit pas etre beaucoup plus lisible :) surtout si le language de départ et le code est un peu cochon ).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.