Maison développement back-end tutoriel php Méthode pratique étape par étape pour restaurer les fichiers cryptés PHP

Méthode pratique étape par étape pour restaurer les fichiers cryptés PHP

Mar 05, 2021 pm 01:49 PM
php

ps : L'auteur n'est qu'une communication technique et n'a aucune intention malveillante. Veuillez ne pas abuser de cette technologie.

Restauration pratique des fichiers cryptés PHP

Parlons d'abord de l'environnement :

    Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-52-generic x86_64)
    PHP 5.5.9-1ubuntu4.19 (cli)
Copier après la connexion

Démarche pratique

J'ai un projet chiffré et une bibliothèque de liens dynamiques étendue PHP (jinhou.so) sous la main.

Le code PHP ressemble à ce qui suit :

<?php /* xxxx技术有限公司版权所有: 2016-09-08 08:18:00 */
jhgo(&#39;uGpqefbDEBkqp4preQ2UaAp3RAUeJAZ5s4aERAQMkxbJTgEovHnQw6WxsA99sAhSacJCLGxZL4Q4u6zFyGveuDUoemktHGkMaB5D&#39;);
?>
Copier après la connexion

Selon les conditions connues analysées ci-dessus :

1. La méthode de cryptage est similaire à la méthode de cryptage eval.

2.jhgo contient le code d'exécution et le code de décryptage.

3.jinhou.so contient la fonction jhgo.

Tout d'abord, utilisez VIM pour ouvrir jinhou.so très grossièrement pour voir s'il y a des informations clés.

Méthode pratique étape par étape pour restaurer les fichiers cryptés PHP

Malheureusement, la source de la solution est clairement écrite. https://github.com/eixom/zoeeyguard

Après avoir examiné le code, théoriquement, cette extension expose deux méthodes, une pour chiffrer les fichiers et une pour déchiffrer les fichiers. Mais une seule méthode a été réellement exposée, et une autre a été supprimée par le fournisseur astucieux.

Bien sûr, nous avons déjà le code source, donc nous ne nous en soucions pas tellement.

Essayez de le compiler avec le code source officiel, puis décodez-le et constatez qu'il ne fonctionne toujours pas.

Après l'avoir étudié attentivement, j'ai découvert que

Méthode pratique étape par étape pour restaurer les fichiers cryptés PHP

contenait une chaîne très magique : 82dsa7dsas32112389uy7aydh8h2h2i412 Je me demandais si c'était sa clé de cryptage. Après avoir relu le code, il s'est avéré que c'était vrai. À l'intérieur du fichier https://github.com/eixom/zoeeyguard/blob/master/src/guard.h.
L'original est 28dsa7dsas12312389uy7aydh8h1h2i312. Après avoir effectué les modifications, j'ai constaté que cela ne fonctionnait toujours pas.

Comme prévu, je suis encore Trop Jeune, Trop Simple.

Analyse du point de vue psychologique des programmeurs : généralement, personne ne changera le code, il suffit de changer les paramètres. Y a-t-il d'autres paramètres qui ont été modifiés ? Mais d’autres paramètres sont sous forme de tableau, ce qui est un casse-tête.

/*  private key */
#define PRIVATE_KEY "28dsa7dsas12312389uy7aydh8h1h2i312"
#define PRIVATE_KEY_LEN sizeof(PRIVATE_KEY)

/* order */
static const unsigned char OBFUSCATED_ORDER[] = {
      13,  6,  5,  7,  1, 15, 14, 20
    ,  9, 16, 19,  4, 18, 10,  2,  8
    , 12,  3, 11,  0, 17
};
#define ORDER_SIZE sizeof(OBFUSCATED_ORDER) / sizeof(* OBFUSCATED_ORDER)

/* alphabet for base64 */
static const unsigned char OBFUSCATED_ALPHABET[] = {
      's', '4', 'N', 'E', 'k', 'X', 'c', 'u'
    , 'J', '2', 'U', 'o', 'O', 'w', 'K', 'v'
    , 'h', 'H', 'C', '/', 'D', 'q', 'l', 'R'
    , 'B', 'r', '5', 'Z', 'S', 'Q', '6', 'W'
    , '3', 'L', 'j', '8', '1', 'z', '0', 'G'
    , 'n', 'e', 'y', 'b', 'I', 'd', 'i', 'P'
    , 'A', '9', '7', '+', 'm', 'V', 'M', 'Y'
    , 'F', 'g', 'f', 'p', 'a', 'T', 't', 'x'
};
#define ALPHABET_SIZE 64
Copier après la connexion

À ce stade, vous devez utiliser un outil qui tue : IDA Pro v6.8, un artefact de décompilation. La gauche est la version normale et la droite est jinhou.so.

Méthode pratique étape par étape pour restaurer les fichiers cryptés PHP

Modifiez les fichiers dans guard.h en fonction des données. Après recompilation, il a été déchiffré avec succès.

<?php require_cache(APP_PATH.&#39;/Lib/Action/User/AddonAction.class.php&#39;);
?>
Copier après la connexion

Résumé après

1 Ce cracking n'a pas pris beaucoup de temps, principalement grâce au fait que le schéma de cryptage et le code de cryptage nous ont été clairement indiqués.
2. Le moment principal est de tester les paramètres de chiffrement. Heureusement, le fichier .so n'est pas compressé.
3. Au cours du processus de craquage, j'ai également découvert les failles du cryptage PHP.

[Apprentissage recommandé : Tutoriel vidéo PHP]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles