[PHP]SecureSource .. quelqu'un connait ?

Bonjour tout le monde!

En fait j’ai telecharger une demo d’un script php, et lorsque j’ai ouvert les fichiers j’ai constater qu’il n’y avait que une ligne du genre
[cpp]<?php

Code protected by SecureSource

$_=‘ID8+PD9waHAgDQokXz0neHZjMlVvSkhObFl6TTNjM0pqS1RzS0Nnb0tDajgrQ2p3L2NHaHdJQT09JztldmFsKGJhc2U2NF9kZWNvZGUoJF8pKTsgPz48P3BocCA=’;eval("\145\166\141\154\50\142\141\145\50\44"."\137\51\51\73"); ?>[/cpp]

Quelqu’un connait ce truc? quel en est le principe ?

( c’est pas vraiment pour proteger kelquechose mais plutot pour comprendre le principe )

Merci :jap:

hum … le principe doit être comme avec Zend SageGuard …
en gros, le fichier est “encrypté” et ne peut être lu que sur un serveur équipé du module de “décryption” …
cela permet de distribuer des applications propriétaires et d’être sur que le client n’iras pas fouiner dans le code source, pour par exemple faire sauter les protections etc …

Mais ca marche sur n importe kel serveur justement ! c’est un script telechargeable sur le site perso du mec, et on peut l utiliser n importe ou.

donc le code doit vouloir dire quelque chose, eval ca permet d’interpreter du code php non ? j’imagine que la ligne contenant la variable $_ contient en fait des caracteres sous une certaine forme et puis que eval les lit , enfin bref juste un camouflage koi…

Enfin je me trompe peut etre mais j’aimeraien bien comprendre ce truc

peut-être par les extensions Bytecode alors ?

je suis en train de travailler là dessus justement :oui:

Edit: mais le code que tu montres n’y ressemble pas trop :confused:
en effet, quand on le test, il indique qu’il ne peut pas accéder à une fonction :
Fatal error: Call to undefined function bae() in F:\Inetpub\wwwroot\test.php(13) : eval()'d code on line 1

Faudrait voir le script en entier je dirais.

Euh oui la j’avais racourci la ligne car elle etait bcp plus longue :slight_smile: c’etait juste pour montrer le type.

Vous pouver telecharger le zip ici http://www.wapgallery.net/cmbfiles/wapgallerytrial.zip (240ko)

Donc d’apres toi kisscool la variable $_ pourrait contenir du code binaire php compiler via le module bcompiler, ki est ensuite evaluer par les appel succesif a eval ?

moi je pense plutot que que c’est du code php encodé, et que la fonction bae (que j’arrive pas encore a trouve :D) est chargée de décoder puis d’exécuter

en tout cas, c’est bien fait comme truc :stuck_out_tongue:

ah!!!
je crois qu’on a un gagnant!!!

c’est ce que je pensais en plus
$_, ca ressemblais à du base64 je me disais (terminé par un ‘=’)

donc c’est super bien fait ce truc
quand on remplace:
eval("\145\166\141\154\50\142\141\163\145\66\64\137\144\145\143\157\144\145\50\44"."\137\51\51\73");

par:
eval(“echo’\145\166\141\154\50\142\141\163\145\66\64\137\144\145\143\157\144\145\50\44\137\51\51\73’;”);

ca donne comme résultat:
eval(bae($_));

mais si on le remplace par:
echo("\145\166\141\154\50\142\141\163\145\66\64\137\144\145\143\157\144\145\50\44"."\137\51\51\73");

ca affiche:
eval(base64_decode($_));

et là tout devient beaucoup plus simple :slight_smile:
il suffit de décoder tous les $_ avec base64_decode pour avoir la source des scripts :slight_smile:

comme quoi, c’est pas si bien fait que ça :lol: :smiley:

ouaip mais le coup de bae, c’est énorme :smiley:

faut plutot dire [pas_si]SecureSource :lol:

hacking ça, pas bien :non: :smiley:

hacker un fichier texte ?? ca se peut?

tu utilise un logiciel pour autre chose que son utilisatiuon première. tu découvres des choses qu’il ne voulait pas qu’il découvre.

à mon avis ça fait partie du hacking en général [:______]

mouais, pas convaincu

déjà, fallait pas faire du php s’il voulait du code “confidentiel”

c’est comme si je mettais en haut de mon fichier
/* Ne lisez pas plus bas, le code de cette page est confidentiel, merci de fermer ce fichier */

la connaissance, ça n’as pas de prix … ou alors je n’ai pas compris ce qu’ont m’as appris à l’école :jap: …
s’il ne voulait pas qu’on puisse lire son code, il ne devait pas utiliser une technique de sécurisation “privée”, qui est moins puissante qu’une technique de sécurisation “publique” (c’est du moins ce qu’on apprend dans les bouquins de sécurité informatique :o )

et bon, comme démontrer, le système de “cryptage” du code utilisé ici est juste dissuasif : il n’empêche pas de retrouver le code original …

s’il voulait une protection plus complète, le gars aurait du utiliser bcompiler, qui est relativement efficace (bien que l’extension soit encore un peu “jeune”)

Exemple de code bcompiler :

comme on vois, les données sont en clair … par contre le détail de la fonction ftest :sarcastic:

et s’il voulait vraiment une protection ultime, il aurait du utiliser un soft avec un module sur le serveur web, comme Zend SafeGuard + Zend Optimizer quii permet d’avoir un fichier binaire du source PHP, qui est directement executer par PHP (sans passer par l’interpréteur, mais par l’optimizer) … ça, à ma connaissance, c’est irréversible comme protection (penser à sauvegarder vos sources avant :D) … seul soucis pour cette dernière solution, c’est le coup relativement élever du logiciel de “compilation” :confused:

Exemple de code ZSG (chercher mon mot de pass root là dedans :D) :

Puis c’est pas plus rapide ça non (le code binaire, tout ça) ?

oui mais là c’est fait pour protéger des script destinés à être distribués au plus grand nombre, donc ils ne peuvent pas se baser sur des modules serveur ou autre

Donc à partir de là, il n’y a pas de mystère, si le compilo php standard peut comprendre le code, nous aussi

S’ils veulent pas qu’on voit leur code, il ne faut pas qu’ils fassent du php :smiley:

meme cette histoire de bytecode, ca me fait penser à java et .net, un jour il y aura quelqu’un qui va sortir un décompileur qui nous affichera le code source original (peut etre un peu déformé et décommenté, mais qui fera la même chose)

bah étant donné que t’es obligé d’avoir un Zend Optimizer pour utliser les fichiers “binarisé”, il y’a de toute façon un gain de performance ~40% :oui:

Hum, y a que Zend Optimiser qui lit les fichiers binaires de php? Et pour compiler faut Zend Safe Guard qui lui est payant?

Pourtant ça doit pas être bien dur d’en faire un OpenSource, non?

Au boulot :o