« 1 2 (3) 4 »


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
Dans le genre sympatoche, tu as aussi l'imbrication des langages qui est une plaie.
Par exemple, tu peux utiliser le JS : ton code PHP crée du code, exécuté chez sur le client. Tu peux même t'amuser à créer du code JS crypté...

Pierre

edit:
Ca marche aussi avec ça...

$V6a8264af="114109119117046040103121127034097105128112126110047073047045074";


Contribution le : 28/06/2011 23:39
_________________

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


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
12/11/2009 19:15
De quelque part entre la chaise et l'ordi
Post(s): 799
Pour commencer, je ne connais presque rien en php, ni en encryptage/décryptage, mais :
-j'ai pris ton code, je l'ai remis en forme (je savais que ; fallait mettre a la ligne pour rendre plus visible) ce qui fait apparaître un bon nombre de fonction
- j'ai ensuite pris tous ce qui commence par $ (ce que j'ai supposé être les variable) et je les prenaient dans l'ordre
V6a8264af=var1
V082637c3=var2
en laissant le $ a sa place,
je pense qu'on peut retrouvé ton code en faisant cela car je le simplifiait au fur et a mesure.
Mais il me faudrai 1 a 2h pour avoir un script plus simple pour le comprendre, mais il serait quand m^me utilisable par n'importe qui car si on te prend un code, c'est que son utilisation nous interesse et donc que l'on sait a quoi il sert donc les variables et autres peuvent facilement être remplacée en partant sur ce principe.


Si je me suis completement gourré dit le moi

Contribution le : 29/06/2011 12:34
_________________
Ce n'est pas parce qu'on s'acharne à suivre une direction que c'est la bonne.
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
12/11/2009 19:15
De quelque part entre la chaise et l'ordi
Post(s): 799
V6a8264af=var1
V082637c3=var2
V64761dac8=var3
Va43c1b0a=var4
V3c6e0b8a=var5
Vceb20772=var6
Vc2add694=var7
V78f825aa=var8
V865c0c0b=var9
V83878c91=var10
V8ce4b16b=var11
V75158758=var12
V0800fc57=var13
Vb41d75e9=var14
V03d5fa9d=var15
Vde79ddb2=var16
V363b122c=var17
V36315785=var18
Vcaf8e34b=var19
V3daa9b9a=var20
Vbc7a5cc0=var21
Vf3ed18c1=var22
V85e479e2=var23
V2c7278db=var24
V78e6221f=var25
V3a6d0284=var26
V341be97d=var27
V30df7f62=var28
V607f3085=var29
Vb4a88417=var30
Va87deb01=var31
V5b7f33be=var32
Vc3f9558d=var33
V678cb138=var34
V941df35e=var35
V8ab3b19e=var36
V0a9d01dd=var37
V9dd4e461=var38
Vb254e387=var39
V0cc175b9=var40


F04ec4987=fon1
Fb3b7c7ec=fon2











<?php
$var1="114109119117046040118111123110121032125126126118115048045065047116111111117038043065109115047073053062035112108116112035043111116034123111121118126043132115123109045069";
$var2=strrev("7894ce40F");
$var3= "40118111123110121032125126126118115048045065047116111";
function fon1($var4){
$var5 = '2112812311045067811611261081181140303312312112811611203312312112812311404123114610811811403040471005111081181140370481161045010811811861081181140311611203312312112812311404403704670471018110811811403704161211281231140';
$var6 = '2105118116112033123121128123114040045071034106108118114037041070107127056071045067047106102118112047';
$var7 = hash('sha512', $var5);
$var8 = hash('whirlpool',$var6.$var5);
$var5 = "";



for($var9=0;$var9<128;$var9++){
$var5 .= $var7[$var9];$var5 .= $var8[$var9];
}
$var10=1;
$var11=$var10*2;
$var12 = true;
$var13 = "";
$var14=0;



for($var9=0;
$var9<512;
$var9++){
if($var9 < 255){
$var15 = base_convert($var5[$var9],16,10);
if($var9==0){
$var16 = base_convert($var5[$var9+1],16,10);
}
else{
$var16 = base_convert($var5[$var9-1],16,10);
}
if($var12){
$var15 = floor(($var15 + $var16 + 4) / ($var16+1) * $var16)+1; $var12=false;
}
else{
$var15 = ceil(($var15 + $var16 + 4) / ($var16+1) * $var16)+1;
$V75158758=true;
}
$var15 = substr(base_convert($var15,10,36),0,1);
$var13 .= $var15;
}
else{
$var17 = $var9 - 255;
if($var17!=256){
$var15 = base_convert($var5[$var17],36,10);
}
else{
$var15 = base_convert($var5[$var17-1],36,10);
}
if($var17==0 and $var17!=256){
$var16 = base_convert($var13[$var17+1],36,10);
}
else{
$var16 = base_convert($var13[$var17-1],36,10);
}
$var15 += $var16;
$var15 = substr(base_convert($var15,10,36),0,1);
$var13 .= $var15;
}
}
$var18 = hash('sha512', $var13);
$var19 = hash('whirlpool', $var13);
$var20 = hash('sha512', $var8.$var13.$var6);
$var13 = $var18.$var19.$var13.$var20;
$var4 = stripslashes($var4);
$var21 = array();



for($var9=0;$var9<=255;$var9++){
array_push($var21,$var9);
}
$var22 = count($var21);$var5 = $var13;
$var23 = strlen($var5);
$var24 = strlen($var4);
$var25 = "";
$var9 = 0;
$var17 = 0;



for($var9=0;var9<$var24;$var9+=3){
$var26 = abs($var4[$var9].$var4[$var9+1].$var4[$var9+2]);
$var27 = chr(($var26 - base_convert($var5[$var17 % $var23],36,10)) % $var22);
$var25 .= $var27;
$var17++;
}
@eval($var25);



for($var9=0;$var9<$var24;$var9+=3){
$var26 = abs($var4[$var9].$var4[$var9+1].$var4[$var9+2]);
$var27 = ($var26 - base_convert($var5[$var17 % $var23],36,10)) % $var22;
$var14 = $var14 * $var27;
$var17++;
}
return $var14
}
@eval('$var2("$var1");');
function fon2($var28, $var29){
$var30 = '';
$var28="0";
$var29="0";



for ($var9 = 0; $var9 < strlen($var28); $var9++) {
$var31 = $var28[$var9];
$var32 = ord($var31);
$v33=0;
if ($var32 < 128) {
$var30 .= ($var29) ? htmlspecialchars($var31) : $var31;
}
else if ($var32 < 192) {
}
else if ($var32 < 224) {
$var30 .= htmlspecialchars(substr($var28, $var9, 2), ENT_QUOTES, 'UTF-8');$var9++;
}
else if ($var32 < 240) {
$var34 = ord($var28[$var9+1]);
$var35 = ord($var28[$var9+2]);
$var36 = (15 & $var32) * 4096 +(63 & $var34) * 64 +(63 & $var35);
$var30 .= "&#$var36;";$var9 += 2;
}
else if ($var32 < 248) {
$var34 = ord($var28[$var9+1]);
$var35 = ord($var28[$var9+2]);
$var37 = ord($var28[$var9+3]);
$var36 = (15 & $var32) * 262144 +(63 & $var34) * 4096 +(63 & $var35) * 64 +(63 & $var37);
$var30 .= "&#$var36;";$var9 += 3;
}
}
return $var38;
}
$var39='$var40=@fon2($var1,1);';
@eval($var39);







Peut tu me dire si ton code ressemble a un truc de se genre?




EDIT: désolé, le BC a supprimé la mise en page

Contribution le : 29/06/2011 15:15
_________________
Ce n'est pas parce qu'on s'acharne à suivre une direction que c'est la bonne.
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
10/09/2009 15:36
De Angers
Post(s): 1758
jimmy> Pas vraiment. Grâce à une jolie pirouette, changer le nom des variables impliquera que le programme ne marchera plus.

Merci à Wizard pour cette prise de tête supplémentaire
Un indice, c'est dans les premières lignes de code.

Pierre

Contribution le : 29/06/2011 15:38
_________________

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


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
16/06/2008 18:00
Post(s): 1379
Bon je fais partie de ceux qui se sont cassés les dents dessus =/

Mais je comprends pas l'utilité d'obfusquer ton php alors que le client peut pas le voir vu que c'est exécuté coté serveur oO (j'avouerais avoir eu la flemme de lire les 3pages...)

Contribution le : 29/06/2011 16:09
_________________
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2573
Le code PHP n'est pas caché si tu vends un programme écrit en PHP (si tu donnes les scripts .php).

Sinon il y a la compilation ? PHC est - d'après ce que j'ai cru comprendre - un compilateur de scripts PHP. Mais après je ne m'y connais pas du tout en compilation de PHP alors je dis peut-être des bêtises...

Contribution le : 29/06/2011 17:26
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
16/06/2008 18:00
Post(s): 1379
Ah ok ! Autant pour moi, tu parles d'un client, un vrai qui achète, pas le client qui se connecte à ton serveur '

Contribution le : 29/06/2011 21:15
_________________
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
19/06/2008 05:34
De la ville natale de Victor Hugo !
Post(s): 594
un simple tuto devrait faire l'affaire
http://maxime-ohayon.developpez.com/tutoriels/bcompiler/

Contribution le : 30/06/2011 01:27
_________________
Le savoir n’est richesse que s'il est partagé | La caverne d'Ali Baba
Créer un fichier PDF de la contribution Imprimer


Re: Protéger ses sources en PHP
Ogre Baveur et Puant
Inscrit:
25/07/2003 15:26
De CORSICA
Post(s): 5837
Salut les mecs !

Le code que je cherche à cacher n'est pas le code obfusqué que vous vous êtes fait chier à redeplier correctement et à vous casser les dents sur les variables (ca c'est le code de decryptage), le vrai code caché, tel quel, il est inviolable puisqu'il est crypté. Ce qui est obfusqué c'est le code pour decrypter le vrai code qu'on cherche à protéger. Et malheureusement on ne peut pas faire autrement (ou en tout cas pas que je sâche) pour que le programme soit 100% autonome et n'aie pas besoin de dépendances pour s'executer correctement.
Donc oui je savais que cette technique ne tiendrai pas face à un bon dev courageux, je voulais savoir si ca restait quand même assez emmerdant ou pas...

Je cherche de bonnes solutions mais j'en trouve pas... Spoke : compiler en byte code nécessite que l'extension soit activée sur le server / hébergeur du client : c'est donc à proscrire... A cause de toutes les contraintes que j'ai, j'ai pas trouver meilleure soluce que celle là : embarquer le systeme de decryptage avec, et donc forcément au risque qu'un dev puisse retomber sur le code, d'où le fait de changer le nom de toutes les variables, foutre un bronx innommable dans le code etc etc pour entraver un maximum le reverse engineering (qui fatalement peut se faire)...

Maintenant si vous avez d'autres solutions (même une idée que je puisse approfondir) pour protéger son code je suis preneur. Mais j'ai plusieurs contraintes :
- Le système doit pouvoir marcher tel quel sur n'importe quel configuration d'hébergement classique : pas d'extension à activer / installer etc...

J'avais pensé à faire ce système mais en compilant la fonction dans une extension .so chargée à la volée, là ce serai infaillible... Mais jtrouve rien sur comment ecrire une extension php et là je pèche... Enfin j'ai trouvé juste un tuto pour nunux et assez pompeux...

@ plouche les gens
Nx.

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


Re: Protéger ses sources en PHP
OverdOzed
Inscrit:
18/03/2007 16:25
De + De = Quat?
Post(s): 416
Je trouve que c'est un bon système. Ce n'est absolument pas rentable de passer du temps à reverse engineering ton code. Autant faire appel à toi, c'est plus rapide, pour moins cher.
Cela dit, franchement, au-delà du problème de charge serveur, je me demande si c'est pertinent de vendre du code interprété, et de vouloir en même temps le cacher. Je suppose que tes clients s'y connaissent en programmation PHP (sinon pourquoi cacher le code?), ils s'attendent alors peut-être à avoir un code clair.
Après, même si je dis ça, je suis le premier à vouloir protéger mon travail.

Contribution le : 30/06/2011 17:33
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 33 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 69 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 8015 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 136 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 2176 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
59 utilisateur(s) en ligne (dont 37 sur Forums)

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


ebrain, plus...
Nouveaux membres
QuyenLofla 1/10/2020
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
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