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

Débats sur le développement - Le Best Of Discussion :

Comment protéger son code du reverse engineering ?


Sujet :

Débats sur le développement - Le Best Of

  1. #21
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Donc dans php il n'existe pas de compilation.
    Bon je vais pas trop approfondir avec des questions parce que je suis pas informaticien professionnel.
    J'en retiens que le cas qui nous préoccupe ne s'applique pas aux sites php accessibles au public, puisque le reverse engineering empêche simplement de piquer du code alors que de toute façon le code d'un site php est inaccessible aux clients. J'ai bon au moins sur ça ?

  2. #22
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Gaël Donat
    Dans le cas de php, il n'y pas de compilation a proprement parlé. Lorsque tu appelle ta page index.php, Apache sait qu'il doit donner le fichier index.php au programme php.exe qui va executer ton code puis renvoyer à apache le résultat, qui a son tour va le renvoyer à ton navigateur. Donc dans php il n'existe pas de compilation.
    Tout de même, avec Zend Guard on peut produire un byte code :
    Zend Guard's encoder compiles and converts plain-text PHP scripts into a platform-independent binary format known as a 'Zend Intermediate Code' file. These encoded binary files are the ones that are distributed instead of the human-readable PHP files.

  3. #23
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En effet. On pourrait même transformer du code php en exe si on voulait, du moment que ça s'exécute sur le serveur...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #24
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Oui on peut tout faire avec des modules, mais c'est pas sujet

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par progfou
    La question est dans le sujet .
    Je voulais savoir quel(les) logiciels(techniques) permettent de se prémunir au mieux du reverse engineering ?

    Merci d'avance de vos réponses
    Pour les programmeurs Borland Delphi, je conseil ICE License (http://www.ionworx.com/icelicense.html) de chez Ionworx il est vraiment très bien, il permet protèger (encrypter) des parties de bout de code nativement, qui seront seulement décrypter quand la clé de déblocage sera chargé, comme ca aucun crack ou patch ne peut être fait sur la version demo puisque le code est encrypté, si il essai de patche ils auront une access violation...

    Disons que comparer aux Protecteur Executable (PE Protector) type AsProtect ou Armadillio, on ne peut peut pas faire un unpacker generic car il est directement intégrer dans le code source... c'est un plus

    Sinon pour les autres développeurs (VB, C#/C/C++, etc...) vous pouvez voir SerialShield SDK, vraiment sympa : http://www.ionworx.com/serialshield.html


    Cordialement,
    diLouna

  6. #26
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par diLouna
    Pour les programmeurs Borland Delphi, je conseil ICE License (http://www.ionworx.com/icelicense.html) de chez Ionworx il est vraiment très bien, il permet protèger (encrypter) des parties de bout de code nativement, qui seront seulement décrypter quand la clé de déblocage sera chargé, comme ca aucun crack ou patch ne peut être fait sur la version demo puisque le code est encrypté, si il essai de patche ils auront une access violation...
    Comment la clé est-elle distribuée ?

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Eusebius
    Comment la clé est-elle distribuée ?

    Soit par e-mail, il faut juste faire un copier-coller de la clé, soit par chargement du fichier.

    Cordialement,

  8. #28
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le problème, c'est qu'il faut bien que le programme décrypte son code au lancement, le programme contient donc tout ce qu'il faut pour le décrypter
    (en tout cas, c'est ainsi que les vendeurs d'obfuscateurs de code dénigrent les crypteurs de code).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Médinoc
    Le problème, c'est qu'il faut bien que le programme décrypte son code au lancement, le programme contient donc tout ce qu'il faut pour le décrypter
    (en tout cas, c'est ainsi que les vendeurs d'obfuscateurs de code dénigrent les crypteurs de code).

    Oui c'est vrai, en fait avec ICE License c'est un peu différent car tu peux sélectionner des bouts de code (type functions ou procedures) à encrypter, mais la différence avec les autres (PE EXE) protector, c'est qu'ils seront seulement décrypter et executé si la clé Full (ou de déblocage) est chargé... Donc en mode Trial aucun moyen de faire un crack... si le cracker tente de patcher cela ne fonctionnera pas, comme le code est encrypter et donc il aura une access violation ...

  10. #30
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut Sécurité difficile...
    Hello,

    Sécurisé un code Javascript, HTML, PHP... C'est difficile. L'utilisation du brouillage de code est une solution, mais bon, j'imagine que pour faire un déboggage après lors d'une erreur sur le site, ça doit pas être terrible (ça vient du code brouillé, ou de mon ciode d'origine ?).

    Mais la sécurité maximale serait de pouvoir empêcher le navigateur client d'afficher le source de votre page, ce qui n'est pas possible aujourd'hui.

    En plus, Mozilla Firefox affiche toutes les données formulaires (noms et valeurs) lorsque l'on affiche les infos d'une page.

    Donc, sécurité assez moyenne pour le code client.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  11. #31
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par zecreator
    Mais la sécurité maximale serait de pouvoir empêcher le navigateur client d'afficher le source de votre page, ce qui n'est pas possible aujourd'hui.
    Seulement vrai pour les langages côté client, pas pour tous ceux que tu as cités.

  12. #32
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais moi, je tombe sur un code client (supposé visible) caché ou brouillé, je le pré-suppose malveillant (enfin, seulement si je m'aperçois qu'il est caché/brouillé: la plupart du temps, je ne le regarde pas) :

    Quand un code est caché/brouillé alors qu'il n'est pas supposé l'être, ça fait tâche; on se dit que le programmeur avait quelque chose à cacher, non point au nom de la propriété intellectuelle, mais au nom de faire Kane-sait-quoi sur ton poste...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #33
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Faut pas déconner non plus, qui aurait peur qu'on lui pirate son super script Javascript qui pemet d'avoir une image qui suis la souris ?
    Bon, je sais que c'est une vision très réductrice du JS, mais je pense que le reverse engeneering pour ce genre de langage est inutile : il suffit que le script soit bien codé pour ne pas laisser de failles ou de bugs, et si quelqu'un lit les sources, c'est pas dramatique... De toute façon, les scripts critiques seront plutôt dans un langage qui s'exécute côté serveur, genre PHP, pour plus de sécurité...

    Quant aux langages compilés, il n'existe pas de sécurités miracle. Un obfuscateur est plus décourageant pour un pirate que sécurisant, en y passant du temps il réussira si il le veut (et si il est assez fort, bien entendu).
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  14. #34
    Membre actif Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Points : 221
    Points
    221
    Par défaut
    De toutes façons du JS ça peut pas vraiment être sécurisé... et puis quel est l'intérêt, du JS tout seul ça ne permet pas grand chose (sauf pour les choses graphiques et les messages du genre "vous n'avez pas entré votre adresse email") tant que ça n'est pas lié avec une page à exécution dynamique!

    Et puis du JS, ahah même quand j'étais pas bon j'ai réussi a "cracker" un code JS soit disant protégé et qui affichait une bannière publicitaire tant qu'on l'avait pas acheté... Les meilleures solutions que j'ai vu reste dans le code compressé (c'est à dire peu lisible au niveau utilisateur, pas de retour à la ligne et divers tests pour voir si la bannière publicitaire est affichée ou non ) mais bon vu qu'on peut voir la source, pas besoin d'être cracker pour cracker un code comme ça

    Et sinon niveau sécurité de vos applications, sérieusement si vous croyez que vous allez pouvoir empêcher le reverse engineering quand Windows n'y arrive pas, chapeau! Dans le principe c'est impossible vu qu'on peut décompiler le programme... la seule chose que cela peut faire c'est décourager les petits curieux, mais les grands resteront là

    Hey au fait le sujet partait à la dérive avec PHP, car de toutes façons si PHP est exécuté sur un serveur qui n'est pas cracké et qui fonctionne comme il le devrait, le seul code source que quelqu'un peut avoir est celui qui est renvoyé par la page php (du html dans de nombreux cas) !
    Alors allez y, protégez le code source contre le crakage du html, mais franchement je n'y vois pas l'intérêt!

    Si des méthodes existent pour "cacher" le code source d'une page php, c'est juste quand les développeurs veulent revendre leurs pages php sans que le client puisse voir ou modifier le contenu du script pour le distribuer à son tour.
    Bref si vous ne prévoyez pas de vendre vos petits programmes php, le cryptage ne sert à rien.

  15. #35
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Sinon il y a ce langage. La difficulté par contre c'est de faire un programme que quelqu'un aura envie de reverse engineerer

  16. #36
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par the-gtm
    Sinon il y a ce langage. La difficulté par contre c'est de faire un programme que quelqu'un aura envie de reverse engineerer
    S'il produit du langage machine... quelle sécurité supplémentaire offre-t-il ? OK, c'était peut-être pas la priorité première des concepteurs !

  17. #37
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut Et AJAX...
    Je rappelle qu'Ajax utilise Javascript et XML, et que de plus en plus de sites utilisent ou vont utiliser cette technique de développement, ce qui va réduire les opérations serveur et augmenter celles du navigateur.

    L'accès au source JS risque donc de devenir un souci car tous les appels serveur vont y être intégerés.

    Donc, en théorie, un hacker sera capable, à partir d'un JS utilisant Ajax, de remonter jusqu'au serveur en traçant les différents scripts ASP ou PHP, et faire des modifications de base par exemple.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  18. #38
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Citation Envoyé par zecreator
    Donc, en théorie, un hacker sera capable, à partir d'un JS utilisant Ajax, de remonter jusqu'au serveur en traçant les différents scripts ASP ou PHP, et faire des modifications de base par exemple.
    Faudrait que tu m'explique ton raisonnement là car je ne vois pas... Il y a toujours un client-side et un server side... ce n'est pas parce que j'appelle mon fichier PHP depuis mon objet HTTPRequest d'AJAX plutot que par l'url du navigateur qu'il est moins sécurisé...

  19. #39
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Selon moi, toute donnée numérique ne peut pas être protéger. On peut seulement compliquer le travail du "hacker" mais si celui-ci est obstiné, il parviendra toujours à ses fins.

  20. #40
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais ce qui se trouve sur le serveur PEUT être protégé: Tant que le hacker n'a pas d'accès physique à celui-ci, un serveur sans faille de sécurité est théoriquement possible.

    Bien sûr, dès qu'un hacker est en possession de code exécutable, la seule limite à ce qu'il peut en faire est sa propre compétence...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. comment déboguer son code ?
    Par AdHoc dans le forum Zend
    Réponses: 11
    Dernier message: 05/02/2007, 15h03
  2. Protéger son code source ?
    Par supergrey dans le forum C++
    Réponses: 32
    Dernier message: 05/12/2006, 09h05
  3. comment optimiser son code en calcul ???
    Par gronaze dans le forum C
    Réponses: 5
    Dernier message: 21/03/2006, 10h41
  4. [Perf] Comment optimiser son code ?
    Par Frifron dans le forum Général Java
    Réponses: 12
    Dernier message: 11/08/2005, 09h05

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