« 1 (2) 3 4 »


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Touriste
Inscrit:
27/06/2011 10:46
Post(s): 14
Bonjour,

La chose qui me choque le plus dans ton code, c'est qu'une fois "chiffré", pour ne faire qu'un simple hello world, il fait appel à un bon nombre de structures conditionnelles, itératives, à des fonctions de réencodage, de manipulations de chaines de caractères, d'opérations mathématiques en tout genre...

Deux conséquences : la taille du code ( à comparer à celui d'origine), et donc le temps utiliser par le parser.
Et, pire encore : Le temps d'exécution!
Dans le cas d'un simple hello world, ça ne doit pas être flagrant. Mais pour un code plus complexe, la différence doit être significative sans parler de la charge CPU occasionnée.

As-tu essayé de chiffrer de la sorte un code plus lourd passé lui même dans une boucle de quelques milliers d'itérations?
Compare les résultats avant et après chiffrement. Cela devrait te refroidir et les éventuels clients d'un tel script également.

Un script qui met quelques millisecondes à s’exécuter peut souffrir de voir sa durée multipliée par 10, même 100. Mais quand le script original requiert déjà 1 seconde, voir bien plus, ton traitement risque de le rendre inutilisable.

A la rigueur, quitte à le passer dans toutes ces opérations, il vaut mieux qu'elles soient codées dans une fonction personnelles en C que tu aura soit rajouté en tant que module. Ou mieux, inclus dans le core par une recompilation de celui-ci. Mais il y aura de toutes façons un impact non négligeable avec autant de manipulations.

En plus, pour le coup, l'algo de décryptage ne serait pas visible et ce serait beaucoup plus compliqué de déduire le code original.

Mais ce n'est que mon avis.

Contribution le : 28/06/2011 22:39
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Citation :

Bjo a écrit:

J'ai pas trop pigé, si une machine le décode, alors on peut lui faire décoder et récupérer le code original non ?


C'est exactement ce que je veux vous faire faire, c'est pour ca que je publie ca, pour savoir si la tâche est ardue ou si elle est facile... Pour moi elle est plutot simple et jpense pouvoir le faire en 15 minutes, maintenant ce n'est pas objectif puisque c'est moi qui ai fait ca...

Je soumets ca dans l'espoir qu'un bon codeur s'y colle et me dise "j'en ai chié ca m'a pris 4h" ou "j'ai repéré le truc trop vite tu devrais le compliquer encore plus"...

@ plouche
Nx.

Contribution le : 28/06/2011 22:48
_________________
Blenderhead since 1998 !
Nicolas Alfonsi
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Citation :

Werewolf a écrit:
Bonjour,

La chose qui me choque le plus dans ton code, c'est qu'une fois "chiffré", pour ne faire qu'un simple hello world, il fait appel à un bon nombre de structures conditionnelles, itératives, à des fonctions de réencodage, de manipulations de chaines de caractères, d'opérations mathématiques en tout genre...


Oé c'est la fonction de decryptage du code

Citation :

Deux conséquences : la taille du code ( à comparer à celui d'origine), et donc le temps utiliser par le parser.
Et, pire encore : Le temps d'exécution!
Dans le cas d'un simple hello world, ça ne doit pas être flagrant. Mais pour un code plus complexe, la différence doit être significative sans parler de la charge CPU occasionnée.

As-tu essayé de chiffrer de la sorte un code plus lourd passé lui même dans une boucle de quelques milliers d'itérations?
Compare les résultats avant et après chiffrement. Cela devrait te refroidir et les éventuels clients d'un tel script également.

Un script qui met quelques millisecondes à s’exécuter peut souffrir de voir sa durée multipliée par 10, même 100. Mais quand le script original requiert déjà 1 seconde, voir bien plus, ton traitement risque de le rendre inutilisable.

A la rigueur, quitte à le passer dans toutes ces opérations, il vaut mieux qu'elles soient codées dans une fonction personnelles en C que tu aura soit rajouté en tant que module. Ou mieux, inclus dans le core par une recompilation de celui-ci. Mais il y aura de toutes façons un impact non négligeable avec autant de manipulations.

Mais ce n'est que mon avis.


Merci pour la remarque, je n'en ai pas parlé mais j'y ai pensé. J'ai pas encore fait les tests sur d'énormes fichiers mais pour l'instant les perfs sont très très corrects sur les codes testés. Je compte le tester sur des énormes fichiers. Mais là pour le coup je comptais l'utiliser que sur une petite partie (un seul fichier "noyau" du projet) de l'appli web... En fait pas besoin de crypter tout un site hein, suffit par exemple de ne crypter qu'une seule fonction, mais une fonction vitale par exemple...

Contribution le : 28/06/2011 22:52
_________________
Blenderhead since 1998 !
Nicolas Alfonsi
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
OverdOzed
Inscrit:
10/09/2009 15:36
De Angers
Post(s): 1758
Bonjour

Je me suis cassé les dents, comme tu dis.
Une fois réindenté, le code a beaucoup plus de gueule...
J'ai cherché à comprendre le cryptage de tes variables et noms de fonctions, qui doit être à coup de gz, base64 et compagnie, mais en vain.
J'ai aussi découvert une machine à laver au milieu du code, sans comprendre pourquoi.
Résultat : je me suis cassé les dents, j'ai dépassé le délai des 15 min, et je file au lit

Pierre

Contribution le : 28/06/2011 22:53
_________________

DeviantArt | Sheepit!
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
OverdOzed
Inscrit:
01/03/2011 15:40
Post(s): 791
Bah je vois que j’arrive après la bataille… J’aurais pas dû m’amuser à remettre joliment le code en forme, et tout et tout

Sinon, bien que détestant le PHP (et le pratiquant donc fort peu), j’ai effectivement repéré tout de suite le truc décrit ci-dessus… et récupéré en cinq minutes (même pas) le code d’origine !

Mais c’est sûr que monsieur-tout-le-monde rique de se décourager rien qu’à voir le code, alors…

[Edit] Et j’avais même pas vu qu’il y avait une deuxième page !

À propos de performances, le truc décode l’ensemble du code PHP une seule fois, si j’ai bien compris – l’éxécution a lieu ensuite, donc le temps rajouté est constant et ne dépend que de la taille du code d’origine… En plus, s’il est appelé souvent, rien n’empêche de mettre en cache la version décodée

Contribution le : 28/06/2011 22:57
_________________
Dev Blender | http://mont29.wordpress.com/
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Citation :

mont29 a écrit:
Bah je vois que j’arrive après la bataille… J’aurais pas dû m’amuser à remettre joliment le code en forme, et tout et tout

Sinon, bien que détestant le PHP (et le pratiquant donc fort peu), j’ai effectivement repéré tout de suite le truc décrit ci-dessus… et récupéré en cinq minutes (même pas) le code d’origine !

Mais c’est sûr que monsieur-tout-le-monde rique de se décourager rien qu’à voir le code, alors…


Bah ce que j'ai decrit au dessus est le processus communément admis par tout le monde... ce n'est pas la solution ecrite ya quand même un minimum de recherche syntaxique à faire pour trouver le truc (et quelques pièges qui viennent semer la confusion à éviter)...
Mais si tu me dis que t'as trouvé (t'as théoriquement trouvé ou t'as réellement récupéré le code par reverse engineering ? car il y a des pièges que l'obfuscation aide pas mal à camoufler) en 5 minutes ca va me motiver à pousser plus le vice...

Merci :)

@ plouche
Nx.

Contribution le : 28/06/2011 23:05
_________________
Blenderhead since 1998 !
Nicolas Alfonsi
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Touriste
Inscrit:
27/06/2011 10:46
Post(s): 14
Oui je t'en ai parlé car si cela fait un moment que je n'ai pas codé en php, je l'ai pratiqué assez pour être confronté à des problématiques d'optimisation.
J'ai des fois été jusqu'à chercher ce qui était le mieux dans certains cas entre while, for...
La delta sur une boucle était parfois seulement de quelques millisecondes, donc imperceptible. Mais quand on se rend compte que le script nécessite de passer des dizaines de fois par cette fonction, et qu'il peut être appelé par des dizaines de clients en même temps, ça fini par faire une différence.

Je n'ai pas l'esprit assez frais pour me lancer maintenant dans ton challenge et j'espère que tu ne m'en tiendra pas rigueur. Mais étant nouvellement inscrit sur le forum et ne pouvant apporter que peu de choses pour le moment au sujet de Blender, j'y ai vu un moyen de contribuer sur un sujet que je connais mieux.

J'aurais commencé évidemment comme ForgetTheNorm par une réindentation pour en faciliter la lecture mais très franchement, je ne pense pas non plus être capable d'en venir à bout en moins d'un quart d'heure.

Edit : @Mont29 : Dans ce cas en effet cela ne pose pas trop de problème. Mais ce n'est pas l'impression que j'avais eu au premier coup d'oeil.

Contribution le : 28/06/2011 23:09
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
OverdOzed
Inscrit:
01/03/2011 15:40
Post(s): 791
Oui, non, j’ai vraiment récupéré le code, ’y avait pas beaucoup (pas assez) d’endroits à tester, en fait…

Mais le fait est que je ne m’en suis pas laissé compter par l’obfuscation (qui est indéniablement soignée…), je suis allé directement au but, si j’ose dire

Donc, mon conseil : multiplier les fameux points d’éxécution !

Mais de toute manière, il me semble que ce genre de truc est assez fragile, tout hacker (au sens historique du terme !) qui se respecte doit pouvoir en venir à bout relativement rapidement… Je crois que l’idée de Werewolf d’ajouter un module ou de patcher le core serait beaucoup plus efficace, car elle rendrait la récupération du code en clair nettement plus problématique.

[edit]Sinon, ça revient plus ou moins à une bête obfuscation, tout compte fait…

[edit de l’edit]En fait, c’est même au final moins efficace que l’obfuscation, non ? Sauf si on obfusque d’abord le code, avant de l’encoder, évidemment… Euh, suis-clair, là ?

Contribution le : 28/06/2011 23:15
_________________
Dev Blender | http://mont29.wordpress.com/
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Citation :

Werewolf a écrit:

J'aurais commencé évidemment comme ForgetTheNorm par une réindentation pour en faciliter la lecture mais très franchement, je ne pense pas non plus être capable d'en venir à bout en moins d'un quart d'heure.


Bon déjà le travail de découragement marche pas mal :) Mais bon, je vise surtout une audience plutot avertie donc vala. Mais franchement, une fois le code réindenté, c'est du gateau hein... C'est pour ca quand mont29 dit qu'il a trouvé en même pas 5minutes, je suis déçu, mais je le crois sans problèmes.

@ plouche
Nx.

Contribution le : 28/06/2011 23:15
_________________
Blenderhead since 1998 !
Nicolas Alfonsi
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP (je vous propose un moyen - need assistance de connaisseurs pour test)
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Citation :

mont29 a écrit:

Mais le fait est que je ne m’en suis pas laissé compter par l’obfuscation (qui est indéniablement soignée…), je suis allé directement au but, si j’ose dire


(pardon de t'avoir posé la question mais fallait que je sois sûr hein ;) )
Voilà donc la réponse que j'attendais.

Citation :

Donc, mon conseil : multiplier les fameux points d’éxécution !


Oui j'ai voulu en faire plus, après je me suis dit que le travail d'obfuscation camouflait assez bien la chose, je me suis dit : premier reflex : "aller à la fin du code... et ... ooooh un eval ! c'est celui là ! et ben non..." du coup on s'oriente vers une variable bidon qui va vers une fonction bidon histoire de perdre 15 minutes... etc etc etc
Mais c'est vrai que tester tous les eval doit etre la première chose à faire...

Citation :

Mais de toute manière, il me semble que ce genre de truc est assez fragile, tout hacker (au sens historique du terme !) qui se respecte doit pouvoir en venir à bout relativement rapidement… Je crois que l’idée de Werewolf d’ajouter un module ou de patcher le core serait beaucoup plus efficace, car elle rendrait la récupération du code en clair nettement plus problématique.


Mon problème c'est que je veux être dans une optique 100% indépendante et "stand alone", je veux pas avoir à faire une seule modifs sur l'hébergement du client... Sinon je me serai pas emmerdé j'aurai tout compilé en bytecode... Le problème avec cette contrainte c'est que le système d'execution/decryptage doit etre embarqué et que forcément ca tiendra pas la route longtemps...

Jvais reflechir à pousser le vice plus loin... voir recrypter un autre coup et/ou imbriquer une vingtaine d'eval... Là par contre le probleme des perfs va commencer à se faire vraiment pesant...

merci en tout cas

@plouche
Nx.

Contribution le : 28/06/2011 23:24
_________________
Blenderhead since 1998 !
Nicolas Alfonsi
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 (2) 3 4 »




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses Figer objets dans la scène 2 31 Aujourd'hui 11:31:50
Bibi09 
[WIP] et travaux terminés [terminé] Rendu super ultra rapide Workbench    [1][2] 16 117 Hier 18:20:06
meltingman 
Questions & Réponses Rendu image très lent    [1][2] 19 67 Hier 17:44:37
Bibi09 
Hors Sujet !! Tutoriel - Un petit renard - 2.9 - Solidify Shrinkwarp 0 31 Hier 17:33:38
meltingman 
[WIP] et travaux terminés [terminé] La mare aux canards    [1][2][3] 26 370 Hier 16:29:43
meltingman 
Questions & Réponses Pb de reflet sur polygones 6 77 Hier 15:57:15
mrpix 
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[12] 110 8014 Hier 10:16:48
Bibi09 
Questions & Réponses application de texture procédurale 4 86 Hier 02:26:26
meltingman 
Questions & Réponses Problème textures lors de rendu (lignes blanches) 3 45 29/09 21:28:00
Rimpotche 
Questions & Réponses [résolu] L'herbe s'enfonce sous le sol 2 130 29/09 13:51:45
Nashoba 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[13] 128 8640 28/09 01:05:39
Bibi09 
Questions & Réponses Associer des textes à un objet 3 118 27/09 18:21:52
meltingman 
Hors Sujet !! Meltingman le retour :D    [1][2][3] 28 1528 27/09 18:14:08
meltingman 
Questions & Réponses NLA, équivalent metastrip sur plusieurs objets 2 92 26/09 14:45:29
CBY 
Questions & Réponses [non résolu] Simulation Tissu Temps Reel    [1][2] 17 391 26/09 09:50:21
moonboots 
The Blender Clan 'tchat Benchmark EEVEE    [1][2][3] 24 910 25/09 14:37:08
Bibi09 
[WIP] et travaux terminés Différents rendus 2.91 9 220 25/09 12:05:20
Bibi09 
Questions & Réponses Render Layers qui n'apparaissent pas    [1][2] 10 312 25/09 11:02:12
HarDrive 
Questions & Réponses [résolu] Problème perso qui bouge des 2 côtés qu'avec 1 coté de l'armature et pas de l'autre    [1][2] 12 2174 24/09 15:14:53
Rimpotche 
Hors Sujet !! Nouveau tutoriel : Animation labiale simplifiée 2.9 3 248 24/09 10:07:35
moonboots 

Qui est en ligne
41 utilisateur(s) en ligne (dont 24 sur Forums)

Membre(s): 1
Invité(s): 40


ebrain, plus...
Nouveaux membres
jeremyj96 29/9/2020
wouguy 29/9/2020
NeoS 27/9/2020
golgot76 25/9/2020
BriceVincent 23/9/2020
Versatil 23/9/2020
Guiu 22/9/2020
ThierryT 20/9/2020
jc223 16/9/2020
clarasarah42 15/9/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 9
BUG de Lyon
plus 264 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445