Wie die eval zu entschlüsseln (base64_decode ()); eval (gzinflate (base64_decode ()));

Mit dem Thema:


Wie zu entschlüsseln oder dekoding eval gzinflate base64_decode

Die Grundprinzipien der Verschlüsselung und Verpackung, die Schwächen der Umzäunungen, Möglichkeiten der manuellen Entfernung, sowie vielseitige Werkzeuge für die automatische Entfernung von Packern und Vorhang Schutz von JavaScript - Skripten.

In der letzten Zeit wird das ursprüngliche Script-Code verschlüsselt oder verpackt.

Dies begann beteiligt in Yandex zu bekommen, die DLE und andere populäre Entwürfe und schöne Geschichten über "kümmern uns um Sie", "Verkehrswirtschaft" und anderen Unsinn sehen sehr lustig.

Nun, wenn jemand etwas zu verbergen hat, dann ist unsere Aufgabe, sie zu bringen Wasser zu reinigen.

Theorie

Aufgrund der JavaScript-Laufzeitpacker und alle Chiffre, die trotz ihrer Vielfalt, haben nur zwei Varianten des Algorithmus:

	 var verschlüsselt = 'codierten Daten'; 
	 Funktion entziffern (str) { 
	  // Funktion entschlüsseln oder entpacken 
	 } 
	 // Führen Sie das entschlüsselte Skript 
	 eval (entschlüsseln (verschlüsselt)); 	
	

oder alternativ:

	 var verschlüsselt = 'codierten Daten'; 
	 Funktion entziffern (str) { 
	  // Funktion entschlüsseln oder entpacken 
	 } 
	 // Anzeige der entschlüsselten Daten 
	 document.write (entschlüsseln (verschlüsselt)); 
	

Die zweite Methode wird am häufigsten verwendet Quelle html-Code der Seite zu schützen, sowie verschiedene Trojaner für die Einführung von schädlichem Code Seite, wie eine versteckte Rahmen.

Beide Algorithmen können kombiniert werden, "ausgetrickst" und die Einbeziehung der Entschlüsselung beliebig sein kann, bleibt es unverändert nur das Prinzip.

In beiden Fällen stellt sich heraus , dass die eval () -Funktion und die document.write () vollständig entschlüsselten Daten übertragen.

Wie, um sie abzufangen?

Versuchen Sie, die eval ersetzen () aufmerksam zu machen (), und Sie werden die geöffnete MessageBox'e entschlüsselten Text sofort sehen.

Einige Browser können Sie Texte von MessageBox'ov zu kopieren, aber es ist besser, zu verwenden, nur eine solche halbautomatischen Decoder:

	 <Html> 
	 <Head> <title> JavaScript Decoder </ title> </ head> 
	 <Body> 
	 
	 <Script type = "text / javascript"> 
	 // Funktion das Protokoll der Ergebnisse der Dekodierung zu schreiben 
	 Funktionsdecoder (str) { 
	  document.getElementById ( 'decodiert') Wert + = str + '\ n' .; 
	 } 
	 </ Script> 
	 
	 <! - Log-Fenster -> 
	 <Textarea id = "decodiert" style = "width: 900px; height: 500px;"> </ textarea> 
	 
	 <Script type = "text / javascript"> 
	 // Dieser Einsatz verschlüsselt Skript vorher 
	 Ersetzen // alle Anrufe an eval () und document.write () in dem Decoder (). 
	 </ Script> 
	 
	 </ Body> 
	 </ Html> 
	

Nehmen wir zum Beispiel jedes Skript mit Yandex , den Quellcode zu sehen , wir sehen etwas ungesund:

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"); [остальной такой же бред отрезан]

Ich muss sagen , dass das Skript verarbeitet das JavaScript der Kompressor , wird es leicht durch die Unterschrift anerkannt - eine charakteristische Titel fukntsii am Anfang des Skripts. Kopieren Sie den gesamten Quellcode des Skripts, ersetzen Sie die erste eval auf dem Decoders, in den Decoder eingesetzt und speichern Sie sie als HTML-Seite.

	 <Script type = "text / javascript">
	 // Dieser Einsatz verschlüsselt Skript vorher
	 Ersetzen // alle Anrufe an eval () und document.write () in dem Decoder ().
	 Decoder (Funktion (p, a, c, k, e, r) {e = function (c) {return (c <a '':? e ...
	 </ Script>
	

Öffnen Sie es in jedem Browser und sehen, dass einmal erschien in einem Textfeld das Skript entpackt. Freude zu früh ist, es entfernt alle Transfers von Linien und Code-Formatierung. Wie mit ihm in dem Artikel über zu beschäftigen deobfuscation .

Zweites Beispiel. HTML-Seite, überdachte Programm HTML-Schutz. Diese Seite wird die Funktionen des Programms zeigt, so gibt es alle Möglichkeiten beteiligt: ​​Sperren Sie die Auswahl und das Kopieren des Textes, Rechtsklick auf das Verbot, den Schutz von Bildern, die Statusleiste, Verschlüsselung HTML-Code zu verbergen, usw. Open-Source-Code, suchen. An der Spitze des bereits bekannten document.write und verschlüsselten Skript. Führen Sie es durch den Decoder, so erhalten wir eine Funktion, den Hauptinhalt der Decodierung:

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

Ersetzen Sie in der letzten document.write - Funktion auf dem Decoder und legen Sie nach dem drei verbleibenden verschlüsselten Skript:

	 <Script type = "text / javascript"> 
	 // Dieser Einsatz verschlüsselt Skript vorher 
	 Ersetzen // alle Anrufe an eval () und document.write () in dem Decoder (). 
	 hp_ok = true; Funktion hp_d01 (s) {.... o = ar.join ( "") + os; Dekoder (o); 
	 hp_d01 (unescape ( "> QAPKRV% 22NCLEWC .... 
	 hp_d01 (unescape ( "> QAPKRV% 22NCLEWCEG? HctcQa ... 
	 hp_d01 (unescape ( ">` mf {% 22`eamnmp ?! DDDDDD% 22v ... 
	 </ Script> 
	

Der Einfachheit halber sind die Papier-Skripts nicht vollständig, müssen Sie auch sie ganz zu kopieren. Wir öffnen den Decoder im Browser und sehen Sie die Schutz Skripte durch das Programm geschrieben, und der entschlüsselten Quellcode der Seite. Der Einfachheit halber können Sie nur das dritte Skript, zu entschlüsseln, die den HTML-Code der Seite enthält. Das ist alles, ist der Schutz. Wie Sie sehen können, kompliziert nichts. Ebenso entfernen und andere HTML-Seiten zu schützen.

Software für die Untersuchung von Trojanern und anderen bösartigen Code

Für komplexere Fälle, haben die großen Kanonen herausgelassen. Dies ist ein freies Projekt Malzilla , für die Untersuchung von Trojanern und anderen bösartigen Code entworfen. Da alle Programme für den Schutz des Urheberrechts, eindeutig schädlich sind, wird Malzilla uns gegen sie in den Kampf zu helfen. Herunterladen der neuesten Version, auspacken, laufen. Öffnen Sie die zweite Registerkarte Decoder im oberen Fenster den verschlüsselten Code des Scripts einzufügen, drücken Sie die Taste Skript ausführen.

Wie zu entschlüsseln oder dekoding eval gzinflate base64_decode
Malzilla bei der Arbeit

In all den Ergebnissen der eval () Funktionen eval_temp Ordner gefaltet, einschließlich Zwischen. Sie können durch Klicken auf die Schaltfläche anzeigen eval () führt, wird der Text öffnet im unteren Fenster angezeigt werden. Es kann, Paste im oberen Fenster kopieren und unmittelbar unter Code - Format durch die Schaltfläche Format klicken. Neben dem Decoder hat Malzilla viele weitere Tools und Optionen, die es einfach keinen Schutz durch JavaScript-Skripten zu entfernen.

Wie zu entschlüsseln oder dekoding eval gzinflate base64_decode
Das Skript wurde erfolgreich decodiert und formatiert

Sie können auch die Aufmerksamkeit auf ein anderes kostenloses Tool zahlen mit verschlüsselten Skripte zu arbeiten - FreShow .

Dekoding < ? Php eval (gzinflate (base64_decode ( 'codierten Text'))) ?; ?> - Option 1 (das Skript)

Konfrontiert hier nur mit der Aufgabe , wie zu öffnen Potikha kodiert von < ? Php eval (gzinflate (base64_decode ( 'codierten Text'))) ?; ?> PHP - Code.

Wie immer zur Führung entschied ich mich zu Google zu wenden. Die Antwort, fand wie immer gefunden.

Code:

	 <Html>
	 <Body>
	 <! - Starten Sie zu entziffern ->
	 <? Php
	 $ Str = gzinflate (base64_decode ( 'codierten Text'));
	 while (1) {
	 if (($ pos1 = strpos ($ str, 'eval (')) === FALSE) {
	 brechen;
	 }
	 $ Pos2 = strpos ($ str, ');');
	 $ Newstr = substr ($ str, $ pos1 + 5, $ pos2- $ pos1-5);
	 eval ( '$ str =' $ newstr .. ";");
	 }
	 print $ str;
	 ?>
	 <! - Ende der Entschlüsselung ->
	 </ Body>
	 </ Html>
	

Speichern Sie die Datei, wie Sie möchten, zalivate auf dem Host oder laufen in ihren lokalhoste und kopieren Sie den Quellcode von allem, was zwischen den Tags ist

<! - Starten Sie zu entziffern ->
...
<! - Ende der Entschlüsselung ->

All. entschlüsselte Code.

Dekoding < ? Php eval (gzinflate (base64_decode ( 'codierten Text'))) ?; ?> - Option 2 (das Skript)

In diesem Fall ist es notwendig, die folgendes tun:

  1. Speichern Sie diese Datei als decrypt.php
  2. Der verschlüsselte Code als coded.txt zu speichern
  3. decoded.txt eine leere Datei erstellen (wenn Sie die Datei auf dem Server ausführen, geben sie CHMOD 0666)
  4. laufen decrypt.php Datei
  5. sollte nun entschlüsselten PHP-Code in der Datei decoded.txt liegen.

Code:

	 <? Php
	 / *
	 Genommen von http://www.php.net/manual/de/function.eval.php#59862
	 Anfahrt:
	 1. Speichern Sie diese Schnipsel als decrypt.php
	 2. Speichern codiert PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei mit dem Namen decoded.txt (von Shell tun CHMOD 0666 decoded.txt)
	 4. Führen Sie dieses Skript (Besuch in einem Web-Browser decrypt.php oder PHP decrypt.php in der Shell zu tun)
	 5. Öffnen Sie decoded.txt, sollte der PHP, wenn nicht unter http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/ kommentieren entschlüsselt werden
	 * /
	 echo "\ nDECODE verschachtelte eval (gzinflate ()) von DEBO Jurgen <[email protected]> \ n \ n";
	 echo "1. Lese coded.txt \ n";
	 $ Fp1 = fopen ( "coded.txt", "r");
	 $ Inhalt = fread ($ fp1, Dateigröße ( "coded.txt"));
	 fclose ($ FP1);
	 echo "2. Dekodierung \ n";
	 während (preg_match ( "/ eval \ (gzinflate /", $ Inhalt)) {
	  $ Inhalt = preg_replace ( "/ <\ | \ ??> /", "", $ Inhalt);  eval (preg_replace ( "/ eval /", "\ $ contents =" $ contents));  } Echo "3. Schreiben decoded.txt \ n";  $ Fp2 = fopen ( "decoded.txt", "w");  fwrite ($ fp2, trim ($ contents));  fclose ($ fp2);
	 ?> 

Bei den Quellcode zu entschlüsseln erkannte ich, dass die Freeware-Anwendung Spyware auf Rechner der Besucher heruntergeladen sowie in regelmäßigen Abständen ausgelöst Pop-ups, die offensichtlich Spam enthalten. Ich stellte diesen Artikel, um für andere die eigentliche Quelle dieser Anwendungen zu untersuchen, um in der Lage sein, sie zu verhindern, dass versehentlich bösartigen Code auf ihren Websites laufen. Ich hoffe, das einige von euch geholfen und ich werde sich bemühen, auch weiterhin von nun an nützlichen und interessanten Einträge zu veröffentlichen.

Dekoding < ? Php eval (gzinflate (base64_decode ( 'codierten Text'))) ?; ?> - Option 3 (online)

Wie Sie den Code und entfernen Sie die Handelsverbindungen der freien und bezahlt Skripte zu entziffern?

Der erste Fall:

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

Wenn vstrechaemstroku eval (base64_decode ( 'SGksIG1hbg ==' )),
dann gehen Sie auf Link ein Online - Decoder in die Form nur SGksIG1hbg == von unserer Linie eingefügt und wir drücken Sie die Taste «Decode Daten».

Fall Zwei:

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

Wenn Sie einen String eval begegnen (gzinflate (base64_decode ( '80jNyclXyFTPVUhJTc5PSU0BAA == '))); .
Wir gehen schon Link und in die Form hat eine ganze Reihe seit eval (gzinflate und endend))); und klicken Sie auf «Decode».

< ? Php eval ((base64_decode ( ' codierten Text')); - Option 4 (mit Echo)

Um schädliche Eingriffe in PHP-Code-Typ zu entschlüsseln:

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

Sie können eine elementare Funktion eval Funktion Echo und sehen ersetzen , was passiert ist .

Dies ist eine der grundlegenden Möglichkeiten zum Entschlüsseln base64_decode ...

Wenn keine dieser Lösungen arbeiten, bedeutet das nicht Schicksal :(

Wenn Sie mehr erfüllt - für dieses Problem keine Lösungen, geben Sie bitte im Kommentar, werden wir versuchen , mit ihnen zu beschäftigen.