This page has been robot translated, sorry for typos if any. Original content here.

Wie kann man eval dekompilieren (base64_decode ()); Eval (gzinflate (base64_decode ()));

Nach Thema:


Wie entschlüsselt oder decodiert eval gzinflate base64_decode

Grundprinzipien der Verschlüsselung und Verpackung, Schwächen des Schutzes, Wege der manuellen Entfernung sowie universelle Werkzeuge zum automatischen Entfernen von Packern und Scharnierschutz vor JavaScript-Skripten.

In letzter Zeit wird immer häufiger der Quellcode von Skripten verschlüsselt oder verpackt.

Yandex, DLE und andere populäre Projekte begannen sich wegzuziehen, und schöne Fahrräder über "Aufpassen von Benutzern", "Sparen von Verkehr" und anderen Unsinn sehen sehr lustig aus.

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

Theorie

Aufgrund der Besonderheiten der JavaScript-Ausführung haben alle Ziffern und Packer trotz ihrer Vielfalt nur zwei Varianten des Algorithmus:

	 Var verschlüsselt = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Entschlüsselung oder Auspacken 
	 } 
	 // Führen Sie das entschlüsselte Skript aus 
	 Eval (entschlüsselt (verschlüsselt)); 	
	

Oder als Option:

	 Var verschlüsselt = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Entschlüsselung oder Auspacken 
	 } 
	 // Zeigen Sie die entschlüsselten Daten an 
	 Document.write (entschlüsseln (verschlüsselt)); 
	

Die zweite Methode wird am häufigsten verwendet, um den ursprünglichen HTML-Code der Seite zu schützen, sowie verschiedene Trojaner, um bösartigen Code in die Seite einzuführen, zum Beispiel einen versteckten Rahmen.

Beide Algorithmen können kombiniert werden, der "Haufen" und die Verwicklung des Entschlüsselers kann beliebig sein, nur das Prinzip bleibt unverändert.

In beiden Fällen stellt sich heraus, dass die Funktionen eval () und document.write () vollständig entschlüsselt werden.

Wie man sie abfängt?

Versuchen Sie, eval () mit alert () zu ersetzen, und in der geöffneten MessageBox sehen Sie sofort den entschlüsselten Text.

Einige Browser erlauben es Ihnen, Text aus MessageBoxes zu kopieren, aber es ist besser, einen solchen halbautomatischen Decoder zu verwenden:

	 <Html> 
	 <Kopf> <title> JavaScript Decoder </ title> </ head> 
	 <Körper> 
	 
	 <Skriptart = "Text / Javascript"> 
	 // Die Funktion des Schreibens in die Entschlüsselungsergebnisse log 
	 Funktionsdecoder (str) { 
	  Document.getElementById ('decodiert') Wert + = str + '\ n'; 
	 } 
	 </ Script> 
	 
	 <! - Protokollfenster -> 
	 <Textarea id = "decodiert" style = "width: 900px; height: 500px;"> </ textarea> 
	 
	 <Skriptart = "Text / Javascript"> 
	 // Legen Sie das verschlüsselte Skript hier im Voraus ein 
	 // Ersetzen Sie alle eval () und document.write () Aufrufe mit decoder () in ihr. 
	 </ Script> 
	 
	 </ Körper> 
	 </ Html> 
	

Zum Beispiel, nehmen wir ein Skript von Yandex , nach dem Betrachten des Quellcodes sehen wir etwas Ungesundes:

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

Sofort werde ich sagen, dass dieses Skript von JavaScript Compressor verarbeitet wird, es ist leicht zu erkennen durch die Signatur - der charakteristische Name der Funktion am Anfang des Skripts. Wir kopieren den gesamten Quelltext des Skripts, ersetzen den ersten eval mit dem Decoder , stecken ihn in den Decoder und speichern ihn als html-Seite.

	 <Skriptart = "Text / Javascript">
	 // Legen Sie das verschlüsselte Skript hier im Voraus ein
	 // Ersetzen Sie alle eval () und document.write () Aufrufe mit decoder () in ihr.
	 Decoder (Funktion (p, a, c, k, e, r) {e = Funktion (c) {return (c <a? '': E ...
	 </ Script>
	

Öffnen Sie es in jedem Browser und sehen, dass in textarea sofort erschien ausgepackten Skript. Es ist zu früh, um sich zu freuen, alle Zeilenverschiebungen und Code-Formatierungen wurden entfernt. Wie man damit umgeht, ist in dem Artikel über Deobfuskation geschrieben .

Das zweite Beispiel. HTML-Seite, abgedeckt durch das Programm HTML Protector. Dies ist eine Seite, die die Funktionen des Programms veranschaulicht, so dass alle Optionen dort sind: Blockieren der Auswahl und Kopieren von Text, Deaktivieren der rechten Maustaste, Schutz von Bildern, Ausblenden der Statusleiste, Verschlüsseln von HTML-Code usw. Wir öffnen den Quellcode, wir schauen. Ganz oben ist das bereits bekannte document.write und verschlüsselte script. Führen Sie es durch den Decoder, erhalten Sie die Entschlüsselungsfunktion des Hauptinhalts:

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

Wir ersetzen das letzte document.write mit dem Decoder in der Funktion und füge nach ihm alle drei verbleibenden verschlüsselten Skripte ein:

	 <Skriptart = "Text / Javascript"> 
	 // Legen Sie das verschlüsselte Skript hier im Voraus ein 
	 // Ersetzen Sie alle eval () und document.write () Aufrufe mit decoder () in ihr. 
	 Hp_ok = true; Funktion hp_d01 (s) {.... o = ar.join ("") + os; Decoder (o); 
	 Hp_d01 (unescape ("> QAPKRV% 22NCLEWC .... 
	 Hp_d01 (unescape ("> QAPKRV% 22NCLEWCEG? HctcQa ... 
	 Hp_d01 (unescape (">` mf {% 22`eamnmp ?! DDDDDD% 22v ... 
	 </ Script> 
	

Für die Bequemlichkeit, der Artikel nicht liefern komplette Skripte, müssen Sie sie vollständig kopieren. Wir öffnen den Decoder im Browser und sehen die vom Programm hinzugefügten Schutz-Scripts und den entschlüsselten Originaltext der Seite. Für die Bequemlichkeit kannst du nur das dritte Skript entschlüsseln, das den HTML-Code der Seite enthält. Das ist der ganze Schutz. Wie Sie sehen können, ist nichts kompliziert. Ebenso wird der andere Schutz von HTML-Seiten entfernt.

Software für Trojaner und andere schädliche Codeforschung

Für komplexere Fälle muss eine schwere Artillerie verwendet werden. Dies ist ein kostenloses Malzilla- Projekt zur Untersuchung von Trojanern und anderen bösartigen Code. Da alle Programme zum Schutz des Urheberrechts einzigartig bösartig sind, wird uns Malzilla im Kampf gegen sie helfen. Laden Sie die neueste Version herunter, packen Sie sie aus und starten Sie sie. Öffnen Sie die zweite Registerkarte Decoder, im oberen Fenster fügen wir den Code des verschlüsselten Skripts ein, drücken wir die Schaltfläche Skript ausführen.

Wie entschlüsselt oder decodiert eval gzinflate base64_decode
Malzilla bei der Arbeit

Im Ordner eval_temp werden alle Ergebnisse von eval () - Funktionen, einschließlich Zwischenfunktionen, hinzugefügt. Sie können sie sehen, indem Sie auf die Schaltfläche Show eval () klicken, wird der Text im unteren Fenster geöffnet. Es kann kopiert, in das obere Fenster eingefügt und sofort durch Drücken der Formatcode- Taste formatiert werden. Zusätzlich zum Decoder hat Malzilla auch viele Werkzeuge und Einstellungen, um den Schutz vor JavaScript-Skripten leicht zu entfernen.

Wie entschlüsselt oder decodiert eval gzinflate base64_decode
Das Skript wurde erfolgreich entschlüsselt und formatiert

Auch können Sie auf ein weiteres kostenloses Tool für die Arbeit mit verschlüsselten Skripten - FreShow achten .

Decodierung <? Php eval ( gzinflate ( base64_decode ( ' codierter Text ' )))); ?> - Option 1 (Skript)

Gesichtsausdruck gerade jetzt mit der Aufgabe, wie es war, um ruhig zu entdecken verschlüsselt durch <? Php eval ( gzinflate ( base64_decode ( ' codierter Text ' )))); ?> Php-Code.

Wie immer, für einen Hinweis habe ich beschlossen, mich an Google zu wenden. Die Antwort wurde immer gefunden.

Code:

	 <Html>
	 <Körper>
	 <! - Beginn der Entschlüsselung ->
	 <? Php
	 $ Str = gzinflate (base64_decode ('codierter Text'));
	 Während (1) {
	 Wenn (($ pos1 = strpos ($ str, 'eval (')) === FALSE) {
	 Brechen;
	 }
	 $ Pos2 = strpos ($ str, ');');
	 $ Newstr = substr ($ str, $ pos1 + 5, $ pos2- $ pos1-5);
	 Eval ('$ str ='. $ Newstr. ";");
	 }
	 Drucken $ str;
	 ?>
	 <! - Ende der Entschlüsselung ->
	 </ Körper>
	 </ Html>
	

Speichern Sie diese Datei, wie Sie möchten, füllen Sie sie auf den Host, oder führen Sie sie auf localhost und kopieren Sie aus der Quelle alles, was zwischen den Tags ist

<! - Beginn der Entschlüsselung ->
...
<! - Ende der Entschlüsselung ->

Das ist alles Der Code wird entschlüsselt.

Decodierung <? Php eval ( gzinflate ( base64_decode ( ' codierter Text ' )))); ?> - Option 2 (Skript)

In diesem Fall müssen Sie folgendes tun:

  1. Diese Datei als decrypt.php speichern
  2. Halten Sie den verschlüsselten Code als coded.txt
  3. Erstellen Sie eine leere decoded.txt-Datei (wenn Sie die Datei auf dem Server ausführen, dann geben Sie es CHMOD 0666)
  4. Führen Sie die Datei decrypt.php aus
  5. Die decoded.txt-Datei sollte nun den entschlüsselten PHP-Code enthalten.

Code:

	 <? Php
	 / *
	 Aus http://www.php.net/manual/de/function.eval.php#59862 genommen
	 Anfahrt:
	 1. Speichern Sie dieses Snippet als decrypt.php
	 2. Speichern Sie den codierten PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei namens decoded.txt (aus Shell CHMOD 0666 decoded.txt)
	 4. Führen Sie dieses Skript aus (besuchen Sie decrypt.php in einem Webbrowser oder php decrypt.php in der Shell)
	 5. Öffnen Sie decoded.txt, das PHP sollte entschlüsselt werden, wenn nicht Kommentar unter http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/
	 * /
	 Echo "\ nDECODE verschachtelte eval (gzinflate ()) von DEBO Jurgen <jurgen@person.be> \ n \ n";
	 Echo "1. Lesen coded.txt \ n";
	 $ Fp1 = fopen ("coded.txt", "r");
	 $ Inhalt = fread ($ fp1, Dateigröße ("coded.txt"));
	 Fclose ($ fp1);
	 Echo "2. Decodierung \ n";
	 Während (preg_match ("/ eval \ (gzinflate /", $ content)) {
	  $ Contents = preg_replace ("/ <\? | \?> /", "", $ Inhalt);  Eval (preg_replace ("/ eval /", "\ $ content =", $ content));  } Echo "3. Schreiben von decoded.txt \ n";  $ Fp2 = fopen ("decoded.txt", "w");  Fwrite ($ fp2, trim ($ content));  Fclose ($ fp2);
	 ?> 

Nach der Entschlüsselung des Quellcodes habe ich festgestellt, dass die Freeware-Anwendung Spyware auf einer Website heruntergeladen wurde. Ich habe diesen Artikel gelesen, damit andere in der Lage sein werden, bösartigen Code auf ihren Webseiten zu untersuchen und zu benutzen. Ich hoffe, das hat einige von euch geholfen und ich werde mich bemühen, die nützlichen und aufschlussreichen Einsendungen von nun an fortzusetzen.

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

Wie entschlüsseln Sie den Code und entfernen Sie kommerzielle Links von bezahlten und kostenlosen Skripten?

Fall eins:

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

Wenn wir die Linie eval (base64_decode ('SGksIG1hbg ==') treffen,
Dann gehen wir weiter Dieser Link Auf dem Online-Decoder fügen wir in das Formular nur SGksIG1hbg == aus unserer Zeile ein und drücken die Taste "Decode data".

Der zweite Fall:

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

Wenn wir auf die Linie eval (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); ,
Wir gehen schon weiter Dieser Link Und wir fügen die ganze Linie in der Form ein, beginnend mit eval (gzinflate und endend ))); Und klicken Sie auf "Decode".

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

Um bösartige Einschlüsse im PHP-Code zu entschlüsseln:

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

Sie können einfach die Funktion eval mit der Echofunktion ersetzen und sehen, was passiert.

Dies ist eine der grundlegendsten Möglichkeiten, um base64_decode zu entschlüsseln ...

Wenn keiner der Wege geholfen hat, dann ist es kein Schicksal :(

Wenn Sie irgendwelche anderen Lösungen für dieses Problem getroffen haben, schreiben Sie an den Kommentar, versuchen Sie, sie zu verstehen.