Comment décrypter le eval (base64_decode ()); eval (gzinflate (base64_decode ()));

Par thème:


Comment décrypter ou dekoding eval gzinflate base64_decode

Les principes de base de cryptage et d' emballage, les faiblesses de protections, des moyens de suppression manuelle, ainsi que des outils polyvalents pour la suppression automatique des emballeurs et de protection de rideau à partir de scripts JavaScript.

Ces derniers temps, le code de script original est crypté ou emballé.

Cela a commencé à se impliquer dans Yandex, le DLE et d'autres conceptions populaires, et de belles histoires sur «se soucient de vous", "l'économie de la circulation» et autres balivernes air très drôle.

Eh bien, si quelqu'un a quelque chose à cacher, notre tâche de les mettre à l'eau potable.

théorie

En raison des conditionneurs d'exécution JavaScript et tout chiffre, malgré leur diversité, ont seulement deux variantes de l'algorithme:

	 var crypté = 'données codées'; 
	 fonction decrypt (str) { 
	  // Déchiffrage de fonction ou décompresser 
	 } 
	 // Exécuter le script décryptée 
	 eval (décrypter (crypté)); 	
	

ou bien:

	 var crypté = 'données codées'; 
	 fonction decrypt (str) { 
	  // Déchiffrage de fonction ou décompresser 
	 } 
	 // Affiche les données décryptées 
	 document.write (décrypter (crypté)); 
	

La deuxième méthode est le plus souvent utilisé pour protéger la source html-code de la page, ainsi que différents chevaux de Troie pour l'introduction de la page de code malveillant, comme un cadre caché.

Les deux algorithmes peuvent être combinés, "trompés" et l'implication de décryptage peut être tout, il reste inchangé seulement le principe.

Dans les deux cas, il se trouve que la fonction eval () et le document.write () transférés données entièrement décryptés.

Comment les intercepter?

Essayez de remplacer le eval () pour alerter (), et vous verrez le MessageBox'e ouvert déchiffré immédiatement le texte.

Certains navigateurs vous permettent de copier du texte à partir MessageBox'ov, mais il est préférable d'utiliser un tel décodeur semi-automatique:

	 <Html> <head> <title> JavaScript Decoder </ title> </ head> <body> <script type = "text / javascript"> // La fonction d'enregistrement d'un résultat journal fonction décodeur de décodage (str) {document.getElementById ( ) valeur "décodé" + = str + '\ n' .;  } </ Script> <! - Log fenêtre -> <textarea id = le style "décodé" = "width: 900px; height: 500px;"> </ textarea> <script type = "text / javascript"> // Ce script d'insertion crypté pré // remplacer tous les appels à eval () et document.write () dans le décodeur ().  </ Script> </ body> </ html> 

Par exemple, prendre toute script avec Yandex , voir le code source , nous voyons quelque chose de malsain:

eval(function(p,a,c,k,e,r){e=function(c){return(c 35?String.fromCharCode(c+29):c.toString(36))};if(! ''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e ){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c]) p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('$.1e .18=8(j){3 k=j["6-9"]||"#6-9";3 l=j["6-L"]||".uL";3 m=j["6-L-17"] ||"";3 n=j["1d"]||0;$(5).2(".6-9").14("7");$(5).2(".6-9").Z("7",8( ){3 a=$(5).x();3 o=$(5).x();3 h=$(5).B("C");$(5).v("g-4");$(5).16( $(k).q());3 t=$(o).2("15");3 c=$(o).2(".br");3 d=$(o).2(".b-12"); [остальной такой же бред отрезан] eval(function(p,a,c,k,e,r){e=function(c){return(c 35?String.fromCharCode(c+29):c.toString(36))};if(! ''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e ){return r[e]}];e=function(){return'\w+'};c=1};while(c--)if(k[c]) p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c]);return p}('$.1e .18=8(j){3 k=j["6-9"]||"#6-9";3 l=j["6-L"]||".uL";3 m=j["6-L-17"] ||"";3 n=j["1d"]||0;$(5).2(".6-9").14("7");$(5).2(".6-9").Z("7",8( ){3 a=$(5).x();3 o=$(5).x();3 h=$(5).B("C");$(5).v("g-4");$(5).16( $(k).q());3 t=$(o).2("15");3 c=$(o).2(".br");3 d=$(o).2(".b-12"); [остальной такой же бред отрезан]

Je dois dire que le script traité le JavaScript du compresseur , il est facilement reconnu par la signature - un titre fukntsii caractéristique au début du script. Copiez l'intégralité du code source du script, remplacer le premier eval sur le décodeur de, inséré dans le décodeur et l' enregistrer comme une page html.

	 <Type Script = "text / javascript">
	 // Ce script d'insertion crypté avance
	 // Remplacer tous les appels à eval () et document.write () dans le décodeur ().
	 décodeur (function (p, a, c, k, e, r) {e = function (c) {return (c <a '':? e ...
	 </ Script>
	

Ouvrez-le dans un navigateur et de voir qu'une fois apparu dans un textarea déballé le script. Joy est trop tôt, il enlève tous les transferts de lignes et le formatage du code. Comment traiter avec elle dans l'article sur désobfuscation .

Deuxième exemple. HTML-Page, programme couvert HTML Protector. Cette page affiche les caractéristiques du programme, il y participent toutes les options: sélection de verrouillage et de copier le texte, cliquez droit sur l'interdiction, la protection des images, cacher la barre d'état, le cryptage code html, etc. Le code source ouvert, regardez. Au sommet du script document.write et crypté déjà familier. Lancez-le à travers le décodeur, on obtient une fonction de décodage du contenu principal:

hp_ok=true;function hp_d01(s){ ...вырезано... o=ar.join("")+os;document.write(o)

Remplacer dans la dernière fonction document.write sur le décodeur et insérer après les trois autres scripts chiffré:

	 <Type Script = "text / javascript"> 
	 // Ce script d'insertion crypté avance 
	 // Remplacer tous les appels à eval () et document.write () dans le décodeur (). 
	 hp_ok = true; fonction hp_d01 (s) {.... o = ar.join ( "") + os; décodeur (o); 
	 hp_d01 (unescape ( "> QAPKRV% 22NCLEWC .... 
	 hp_d01 (unescape ( "> QAPKRV% 22NCLEWCEG? HctcQa ... 
	 hp_d01 (unescape ( ">` mf {% 22`eamnmp ?! DDDDDD% 22v ... 
	 </ Script> 
	

Pour plus de commodité, les scripts de papier ne sont pas complètement, vous devez également les copier entièrement. Nous ouvrons le décodeur dans le navigateur et voir les scripts de protection écrites par le programme, et le code source de la page déchiffrée. Pour plus de commodité, vous pouvez déchiffrer le troisième scénario, qui contient le code html de la page. Voilà toute la protection. Comme vous pouvez le voir, rien de bien compliqué. De même enlever et protéger les autres pages HTML.

Logiciel pour l'étude des chevaux de Troie et autres codes malveillants

Pour les cas plus complexes, ont laisser sortir les gros canons. Ceci est un projet libre Malzilla , conçu pour l'étude des chevaux de Troie et autres codes malveillants. Étant donné que tous les programmes pour la protection du droit d'auteur, sont particulièrement nuisibles, Malzilla nous aidera dans la lutte contre eux. Téléchargement de la dernière version, déballer, courir. Ouvrez le second onglet Décodeur dans la fenêtre supérieure coller le code crypté du script, appuyez sur le script du bouton Exécuter.

Comment décrypter ou dekoding eval gzinflate base64_decode
Malzilla au travail

Dans tous les résultats de la eval () fonctions eval_temp plié dossier, y compris les intermédiaires. Ils peuvent être consultés en cliquant sur le bouton Afficher eval () résultats, le texte apparaît dans la fenêtre inférieure. Il peut copier, coller dans la fenêtre supérieure et immédiatement sous forme de code en cliquant sur le bouton Format. En plus du décodeur Malzilla a beaucoup plus d'outils et d'options qui le rendent facile à enlever toute protection par des scripts JavaScript.

Comment décrypter ou dekoding eval gzinflate base64_decode
Le script a été décodé avec succès et formaté

Vous pouvez aussi faire attention à un autre outil libre de travailler avec des scripts cryptés - FreShow .

Dekoding < ? Php eval (gzinflate (base64_decode ( 'texte codé'))) ?; ?> - Option 1 (le script)

Face ici juste à la tâche de la façon d'ouvrir Potikha codée par < ? Php eval (gzinflate (base64_decode ( 'texte codé'))) ?; ?> Code Php.

Comme toujours à titre indicatif, j'ai décidé de se tourner vers Google. La réponse, comme toujours trouvé trouvé.

Code:

	 <Html>
	 <Body>
	 <! - Commencez à déchiffrer ->
	 <? Php
	 $ Str = gzinflate (base64_decode ( 'texte codé'));
	 while (1) {
	 if (($ pos1 = strpos ($ str, "eval ()) === FALSE) {
	 break;
	 }
	 $ Pos2 = strpos ($ str, ');');
	 $ Newstr = substr ($ str, pos1 $ + 5, $ pos2- $ pos1-5);
	 eval ( '$ str =' newstr $ .. ";");
	 }
	 imprimer str $;
	 ?>
	 <! - Fin de décryptage ->
	 </ Body>
	 </ Html>
	

Enregistrez le fichier que vous le souhaitez, zalivate sur l'hôte, ou courir dans leur lokalhoste et copier le code source de tout ce qui est entre les balises

<! - Commencez à déchiffrer ->
...
<! - Fin de décryptage ->

Tous. Code déchiffré.

Dekoding < ? Php eval (gzinflate (base64_decode ( 'texte codé'))) ?; ?> - Option 2 (le script)

Dans ce cas, il est nécessaire d'effectuer les opérations suivantes:

  1. enregistrez ce fichier comme decrypt.php
  2. Le code crypté pour enregistrer en tant que coded.txt
  3. decoded.txt créer un fichier vide (si vous exécutez le fichier sur le serveur, spécifier chmod 0666)
  4. exécuter decrypt.php fichier
  5. devrait maintenant se situer code PHP décryptée dans le fichier decoded.txt.

Code:

	 <? Php
	 / *
	 Tiré de http://www.php.net/manual/de/function.eval.php#59862
	 Indications:
	 1. Enregistrez ce bout comme decrypt.php
	 2. Enregistrez le code PHP encodé en coded.txt
	 3. Créez un fichier vide appelé decoded.txt (de shell chmod 0666 decoded.txt)
	 4. Exécutez ce script (visite decrypt.php dans un navigateur Web ou faire php decrypt.php dans la coquille)
	 5. Ouvrez decoded.txt, le PHP doit être déchiffré sinon commentaire ci-dessous http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/
	 * /
	 echo "\ nDECODE eval imbriquée (gzinflate ()) par DEBO Jurgen <[email protected]> \ n \ n";
	 echo "1. Lecture coded.txt \ n";
	 $ FP1 = fopen ( "coded.txt", "r");
	 $ Contenu = fread (FP1 $, filesize ( "coded.txt"));
	 fclose (FP1 $);
	 echo "2. Décodage \ n";
	 tandis que (preg_match ( "/ eval \ (gzinflate /", $ contenu)) {
	  $ Contenu = preg_replace ( "/ <\ | \ ??> /", "", matières $);  eval (preg_replace ( "/ eval /", "\ $ contents =" $ contenu));  } Echo "3. Rédaction decoded.txt \ n";  $ Fp2 = fopen ( "decoded.txt", "w");  fwrite (FP2 $, trim ($ contenu));  fclose (FP2 $);
	 ?> 

Sur déchiffrant le code source, je compris que l'application freeware téléchargé les logiciels espions sur les ordinateurs des visiteurs ainsi que les pop-ups lancées périodiquement qui contenaient des pourriels. J'ai posté cet article pour que les autres soient en mesure d'examiner la source réelle de ces applications afin de les empêcher de courir, par inadvertance, un code malveillant sur leurs sites Web. J'espère que cela a aidé certains d'entre vous et je vais essayer de continuer à publier des entrées utiles et pertinentes à partir de maintenant.

Dekoding < ? Php eval (gzinflate (base64_decode ( 'texte codé'))) ?; ?> - Option 3 ( en ligne)

Comment déchiffrer le code et supprimer les liens commerciaux des scripts gratuits et payants?

Le premier cas:

eval(base64_decode ('SGksIG1hbg=='));

Si vstrechaemstroku eval (base64_decode ( 'SGksIG1hbg ==' )),
puis allez sur ce lien un décodeur en ligne inséré dans le moule seulement SGksIG1hbg == de notre ligne et nous appuyer sur le bouton «données Decode».

Deuxième cas:

eval(gzinflate(base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA==')));

Si vous rencontrez un eval string (gzinflate (base64_decode ( '80jNyclXyFTPVUhJTc5PSU0BAA == '))); .
Nous allons déjà ce lien et inséré dans le moule a une ligne entière depuis eval (de gzinflate et se terminant))); et cliquez sur «Decode».

< ? Php eval ((base64_decode ( ' texte codé')); - option 4 ( à l' aide de l' écho)

Pour décrypter les intrusions malveillantes dans le type de code php:

eval(base64_decode(”DQplcnJvcl9yZXBv...tPWhlYWRlc...2F0aW9uOiBodHRwOi8...eGl0KCk7DQp9Cn0KfQ0KfQ0KfQ==”));

Vous pouvez remplacer une fonction élémentaire fonction eval pour faire écho et de voir ce qui est arrivé.

Ceci est l'un des moyens les plus élémentaires pour décrypter base64_decode ...

Si aucune de ces solutions ne fonctionne, il ne signifie pas le destin :(

Si vous avez rencontré des plus - des solutions à ce problème, s'il vous plaît écrire dans le commentaire, nous allons essayer de traiter avec eux.