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

PHP & Base de données Discussion :

Analyser une méthode de chiffrement PHP, je veux savoir quel chiffrement est utilisé et comment le déchiffrer.


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2024
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2024
    Messages : 5
    Points : 11
    Points
    11
    Par défaut Analyser une méthode de chiffrement PHP, je veux savoir quel chiffrement est utilisé et comment le déchiffrer.
    Bonjour,

    Il y a quelques jours, j'ai vu ce post sur un forum de cracking et j'ai voulu essayer de le renverser, mais mes compétences techniques sont insuffisantes pour le restaurer. Je voudrais demander des conseils aux experts.

    Le contenu suivant provient de 52pojie, et c'est purement pour la recherche d'algorithmes de décryptage !

    Idée de base :

    1. Utiliser un analyseur PHP pour analyser le code PHP en un Abstract Syntax Tree (AST).
    2. Parcourir progressivement l'AST et modifier les nœuds selon des règles prédéfinies.
    3. Modifier les noms de variables et de fonctions.
    4. Inclure des appels de chaînes de caractères en ligne.
    5. Fusionner les chaînes de caractères.
    6. Supprimer le code inutile.
    7. Formater le code.
    8. Régénérer le code PHP à partir de l'AST modifié.
    9. Dé-obfusquer la sortie du code PHP.

    Le point clé est d'analyser l'AST et de définir les règles pour modifier l'AST.

    C'est l'idée, mais pour une restauration en batch, je n'ai vu aucune bibliothèque pour cela, et il n'y a pas de méthode directe pour le résoudre. J'ai essayé des outils d'IA, mais peut-être à cause de la façon dont j'ai posé la question, ils n'ont pas fourni la solution correspondante.

    Avant encryption :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    namespace app\api\controller\v6;
    class Update extends Base
    {
        public function Index()
        {
            require_once 'apk/v16.php';
            $vsdata = get_url_up();
            $data = array('code' => $vsdata['code'], 'msg' => 'success', 'url' => $vsdata['url']);
            die(json_encode($data));
        }
    }
    Après encryption :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
    namespace app\api\controller\v6;
     
    if (!defined("A_AA_AAAAAA_AAA__")) {
        define("A_AA_AAAAAA_AAA__", "A_AA_AAAAAA_AAA_A");
    }
    $GLOBALS[A_AA_AAAAAA_AAA__] = explode("|E|`|k", "H*|E|`|k415F41415F4141414141415F5F4141415F");
    if (!defined("A_AA_AAAAAA_A___A")) {
        define("A_AA_AAAAAA_A___A", "A_AA_AAAAAA_A__A_");
    }
    $GLOBALS[A_AA_AAAAAA_A___A] = explode("|r|y||", "H*|r|y||61706B2F7631362E706870|r|y||636F6465|r|y||6D7367|r|y||73756363657373|r|y||75726C");
    if (!defined(pack($GLOBALS[A_AA_AAAAAA_AAA__][0], $GLOBALS[A_AA_AAAAAA_AAA__][1]))) {
        define(pack($GLOBALS[A_AA_AAAAAA_AAA__][0], $GLOBALS[A_AA_AAAAAA_AAA__][1]), ord(63));
    }
    $C3zBuEt1402 = array();
    $C3zBuEt1402[] = 16;
    $C3zBuEt1402[] = 8;
    $C3zBuEt1402[] = 9;
    $C3zBuEt1402[] = 10;
    $C3zBuEt1402[] = 17;
    class Update extends Base
    {
        public function Index()
        {
            $C3zBuEt1403 = array();
            $C3zBuEt1403[] = 4;
            $C3zBuEt1403[] = 20;
            $C3zBuEt1403[] = 3;
            $C3zBuEt1403[] = 14;
            $C3zBuEt1403[] = 11;
            $A_AA_AAAAAA_A__AA = "pack";
            $C3zeF8H = $A_AA_AAAAAA_A__AA($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][01]);
            $C3z8H = (require_once $C3zeF8H);
            unset($C3ztI8H);
            $C3ztI8H = get_url_up();
            $vsdata = $C3ztI8H;
            $A_AA_AAAAAA_A_A__ = "pack";
            $C3zeFvP8H = $A_AA_AAAAAA_A_A__($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][02]);
            $A_AA_AAAAAA_A_A_A = "pack";
            $C3zeFvPvP8I = $A_AA_AAAAAA_A_A_A($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][02]);
            $A_AA_AAAAAA_A_AA_ = "pack";
            $C3zeFvP8J = $A_AA_AAAAAA_A_AA_($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][3]);
            $A_AA_AAAAAA_A_AAA = "pack";
            $C3zeFvP8K = $A_AA_AAAAAA_A_AAA($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][4]);
            $A_AA_AAAAAA_AA___ = "pack";
            $C3zeFvP8L = $A_AA_AAAAAA_AA___($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][05]);
            $A_AA_AAAAAA_AA__A = "pack";
            $C3zeFvPvP8M = $A_AA_AAAAAA_AA__A($GLOBALS[A_AA_AAAAAA_A___A][00], $GLOBALS[A_AA_AAAAAA_A___A][05]);
            $C3zzA8N = array();
            $C3zzA8N[$C3zeFvP8H] = $vsdata[$C3zeFvPvP8I];
            $C3zzA8N[$C3zeFvP8J] = $C3zeFvP8K;
            $C3zzA8N[$C3zeFvP8L] = $vsdata[$C3zeFvPvP8M];
            unset($C3ztI8H);
            $C3ztI8H = $C3zzA8N;
            $data = $C3ztI8H;
            die(json_encode($data));
        }
    }

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 424
    Points : 15 794
    Points
    15 794
    Par défaut
    je n'ai pas compris où est l'information chiffrée.
    qu'est ce que vous voulez obtenir comme résultat ?

  3. #3
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Il y a plusieurs années je m'étais amusé à écrire un code PHP pour obfusquer mon propre code selon, donc, mes propres règles et ça marchait plutôt bien.

    Il y a quelques mois quelqu'un sur ce même forum avait évoqué l'IA en disant qu'une IA pouvait dé-obfusquer.

    J'ai joué avec l'IA et j'en ai écris ce billet : https://www.avonture.be/blog/php-obfuscator

    Du coup, j'ai procédé de même avec le code que tu as proposé; j'ai copié/collé dans Gemini (Google) et, en une seconde, il m'a donné une version lisible.

  4. #4
    Membre habitué
    Homme Profil pro
    Electron libre since 80's
    Inscrit en
    Juillet 2016
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Electron libre since 80's
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 92
    Points : 137
    Points
    137
    Par défaut
    @cavo789

    Arf, les codeurs vont disparaître =-)

    Je suis heureux d'avoir 62 ans (donc plus proche de l'urne que du berceau).

    J'ai beaucoup hacké dans les 80's (il y a prescription) : on achetait le jeu (500 francs environ 112,07€ mais ce n'est pas en monnaie constante) à 3 personnes. Je modifiait le binaire pour éviter la protection et tout le monde (les 3, je n'ai jamais cherché à faire de l'argent) en profitait.

    Vous n'aurez pas le plaisir de dire "j'ai cracké le programme" mais plutôt "j'ai trouvé l'AI qui a cracké...".

    Je suis désolé mais on vous laisse en héritage un monde de m***e. Et en plus, vous allez payer nos dettes \o/

Discussions similaires

  1. [Sonar] Pb pour analyser une application PHP avec Sonar
    Par fmarie3 dans le forum Qualimétrie
    Réponses: 3
    Dernier message: 23/12/2013, 21h05
  2. Executer une analyse d'un fichier en PhP
    Par Aweoob dans le forum DB2
    Réponses: 0
    Dernier message: 14/09/2012, 16h23
  3. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55
  4. Savoir quel OS est installer sur une machine
    Par batmat86 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/06/2004, 16h16
  5. Analyser une bitmap
    Par Vathal dans le forum OpenGL
    Réponses: 6
    Dernier message: 14/02/2004, 16h12

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