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

Wie entschlüsselt man eval (base64_decode ()); eval (gzinflate (base64_decode ()));

Nach Thema:


Wie entschlüsseln oder entschlüsseln Sie eval gzinflate base64_decode

Grundprinzipien der Verschlüsselung und Verpackung, Schutzschwächen, manuelle Entfernung, sowie universelle Werkzeuge zum automatischen Entfernen von Packern und Scharnierschutz aus JavaScript-Skripten.

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

Yandex, DLE und andere populäre Projekte begannen, sich daran zu beteiligen, und schöne Fahrräder über "auf die Nutzer aufpassen", "Verkehr sparen" und anderen Unsinn sehen sehr lustig aus.

Nun, wenn jemand etwas zu verbergen hat, bedeutet das, dass es unsere Aufgabe ist, sie zu sauberem Wasser zu bringen.

Theorie

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

	 var verschlüsselt = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Funktion der Entschlüsselung oder des Entpackens 
	 } 
	 // Führen Sie das entschlüsselte Skript aus 
	 eval (entschlüsseln (verschlüsselt)); 	
	

oder als Option:

	 var verschlüsselt = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Funktion der Entschlüsselung oder des Entpackens 
	 } 
	 // Zeigt die entschlüsselten Daten an 
	 document.write (entschlüsseln (verschlüsselt)); 
	

Die zweite Methode wird meistens verwendet, um den Quell-HTML-Code der Seite zu schützen, sowie verschiedene Trojaner, um bösartigen Code in die Seite einzubringen, zum Beispiel einen versteckten Rahmen.

Beide Algorithmen können kombiniert werden, der "Haufen" und die Verschränkung des Entschlüsslers können 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 sind.

Wie man sie abfängt?

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

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

	 <html> 
	 <head> <title> JavaScript Decoder </ title> </ head> 
	 <Körper> 
	 
	 <Skripttyp = "Text / Javascript"> 
	 // Die Funktion des Schreibens in das Entschlüsselungsergebnisprotokoll 
	 Funktionsdecoder (str) { 
	  document.getElementById ('decodiert'). value + = str + '\ n'; 
	 } 
	 </ script> 
	 
	 <! - Logfenster -> 
	 <textarea id = "decodiert" style = "Breite: 900px; Höhe: 500px;"> </ textarea> 
	 
	 <Skripttyp = "Text / Javascript"> 
	 // Fügen Sie das verschlüsselte Skript hier im Voraus ein 
	 // Ersetze alle eval () und document.write () Aufrufe mit decoder () darin. 
	 </ script> 
	 
	 </ body> 
	 </ html> 
	

Nehmen wir zum Beispiel ein Skript von Yandex , nachdem wir uns den Quellcode angesehen haben, 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 JavaScript Compressor verarbeitet wird, ist es leicht, auf der Unterschrift - der charakteristische Name der Funktion am Anfang des Skripts zu lernen. Wir kopieren den gesamten Quellcode des Skripts, ersetzen das erste eval durch den Decoder , fügen es in den Decoder ein und speichern es als HTML-Seite.

	 <Skripttyp = "Text / Javascript">
	 // Fügen Sie das verschlüsselte Skript hier im Voraus ein
	 // Ersetze alle eval () und document.write () Aufrufe mit decoder () darin.
	 Dekodierer (Funktion (p, a, c, k, e, r) {e = Funktion (c) {Rückkehr (c <a? '': e ...
	 </ script>
	

Öffnen Sie es in jedem Browser und sehen Sie, dass in Textarea erschien sofort entpacktes Skript. Es ist zu früh, um glücklich zu sein, alle Zeilenübertragungen und Codeformatierungen wurden entfernt. Wie man damit umgeht, steht im Artikel über Entschleierung .

Das zweite Beispiel. HTML-Seite, die vom Programm HTML Protector abgedeckt wird. Dies ist eine Seite, die die Funktionen des Programms demonstriert, so dass alle Optionen vorhanden sind: Blockieren der Auswahl und Kopieren von Text, Deaktivieren der rechten Maustaste, Schützen von Bildern, Ausblenden der Statusleiste, Verschlüsseln von HTML-Code usw. Wir öffnen den Quellcode, wir schauen. Ganz oben ist bereits das document.write, das wir kennen, und das verschlüsselte Skript. 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ügen danach alle drei verbleibenden verschlüsselten Skripte ein:

	 <Skripttyp = "Text / Javascript"> 
	 // Fügen Sie das verschlüsselte Skript hier im Voraus ein 
	 // Ersetze alle eval () und document.write () Aufrufe mit decoder () darin. 
	 hp_ok = true; Funktion hp_d01 (s) {.... o = ar.join ("") + os; Dekodierer (o); 
	 hp_d01 (unescape ("> QAPKRV% 22NCLEWC .... 
	 hp_d01 (unescape ("> QAPKRV% 22NCLEWCEG? HctcQa ... 
	 hp_d01 (unescape (">` mf {% 22`eamnmp ?! DDDDDD% 22v ... 
	 </ script> 
	

Aus praktischen Gründen enthält der Artikel keine vollständigen Skripts, Sie müssen sie vollständig kopieren. Wir öffnen den Decoder im Browser und sehen die vom Programm hinzugefügten Schutzskripte und den entschlüsselten Originaltext der Seite. Der Einfachheit halber können Sie 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. In ähnlicher Weise werden andere Schutzmaßnahmen für HTML-Seiten entfernt.

Software für Trojaner und andere Schadcode-Forschung

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

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

Im Ordner eval_temp werden alle Ergebnisse der eval () - Funktionen einschließlich der Zwischenergebnisse ausgeführt. Sie können durch Klicken auf die Schaltfläche Show eval () Ergebnisse angezeigt werden, der Text wird im unteren Fenster geöffnet. Sie kann kopiert, in das obere Fenster eingefügt und sofort formatiert werden, indem Sie auf die Schaltfläche Format code klicken. Neben dem Decoder verfügt Malzilla auch über viele Tools und Einstellungen, um den Schutz vor JavaScript-Skripten zu entfernen.

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

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

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

Konfrontiert gerade jetzt mit der Aufgabe, sozusagen durch Verschlüsselung diskret durch <? Php eval ( gzinflate ( base64_decode ( ' codierter Text ' )))); ?> PHP-Code.

Wie immer 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 ('kodierter Text'));
	 während (1) {
	 if (($ pos1 = strpos ($ str, 'eval (')) === FALSCH) {
	 Pause;
	 }
	 $ pos2 = strpos ($ str, ');');
	 $ newstr = substr ($ str, $ pos1 + 5, $ pos2- $ pos1-5);
	 eval ('$ str ='. $ newstr. ";");
	 }
	 Druck $ str;
	 ?>
	 <! - Entschlüsselungsende ->
	 </ body>
	 </ html>
	

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

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

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. Speichern Sie diese Datei als decrypt.php
  2. Verschlüsseln Sie den gespeicherten Code als coded.txt
  3. Erstellen Sie eine leere decoded.txt-Datei (wenn Sie die Datei auf dem Server ausführen, geben Sie CHMOD 0666 an)
  4. Führen Sie die Datei decrypt.php aus
  5. Die decoded.txt-Datei sollte nun den entschlüsselten PHP-Code enthalten.

Code:

	 <? php
	 / *
	 Entnommen von http://www.php.net/manual/de/function.eval.php#59862
	 Wegbeschreibung:
	 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 der Shell do CHMOD 0666 dec dected.txt)
	 4. Führen Sie dieses Skript aus (besuchen Sie decrypt.php in einem Webbrowser oder php entschlüsseln.php in der Shell)
	 5. Öffnen Sie decoded.txt, die PHP sollte entschlüsselt werden, wenn nicht Kommentar unten http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/
	 * /
	 echo "\ nDECODE nested eval (gzinflate ()) von DEBO Jurgen <jurgen@person.be> \ n \ n";
	 echo "1. Lesen coded.txt \ n";
	 $ fp1 = fopen ("coded.txt", "r");
	 $ contents = fread ($ fp1, Dateigröße ("coded.txt"));
	 fclose ($ fp1);
	 echo "2. Decodierung \ n";
	 while (preg_match ("/ eval \ (gzinflate /", $ contents)) {
	  $ contents = preg_replace ("/ <\? | \?> /", "", $ contents);  eval (preg_replace ("/ eval /", "\ $ contents =", $ contents));  } echo "3. Schreiben decoded.txt \ n";  $ fp2 = fopen ("decodiert.txt", "w");  fwrite ($ fp2, trim ($ Inhalt));  fclose ($ fp2);
	 ?> 

Nach dem Entschlüsseln des Quellcodes erkannte ich, dass die Freeware-Anwendung Spyware auf einer Website heruntergeladen wurde. Ich habe diesen Artikel gelesen, damit andere Schadcode auf ihren Websites untersuchen und verwenden können. Ich hoffe, dass dies einigen von euch geholfen hat und ich werde mich bemühen, von nun an weiter zu den nützlichen und aufschlussreichen Beiträgen zu gehen.

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

Wie man den Code entschlüsselt und kommerzielle Links von bezahlten und kostenlosen Skripten entfernt?

Fall eins:

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

Wenn wir die Zeile eval (base64_decode ('SGksIG1hbg ==')) treffen,
dann machen wir weiter Dieser Link Am Online-Decoder fügen wir in das Formular nur SGksIG1hbg == aus unserer Zeile ein und drücken den Button "Daten decodieren".

Fall der Sekunde:

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

Wenn wir auf die Zeile eval stoßen (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); ,
wir gehen schon weiter Dieser Link und wir fügen die ganze Zeile in die Form ein, beginnend mit eval (gzinflate und endend ))); und klicken Sie auf "Decodieren".

<? php eval ( ( base64_decode ( ' kodierter Text ' )) - Option 4 (mit Echo)

Um schädliche Einschlüsse im PHP-Code zu entschlüsseln:

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

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

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

Wenn keiner der Wege geholfen hat, dann nicht das Schicksal :(

Wenn Sie andere Lösungen für dieses Problem haben, schreiben Sie in den Kommentar, versuchen Sie sie zu verstehen.