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

So entschlüsseln Sie eval (base64_decode ()); eval (gzinflate (base64_decode ()));

Zum Thema:


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

Die Grundprinzipien der Verschlüsselung und Verpackung, Schwachstellen des Schutzes, manuelle Entfernungsmethoden sowie universelle Tools zum automatischen Entfernen von Packern und zum Schutz vor JavaScript-Skripten.

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

Yandex, DLE und andere beliebte Projekte begannen sich daran zu beteiligen, und schöne Geschichten über „Pflege der Benutzer“, „Verkehr sparen“ und anderen Müll sehen sehr lustig aus.

Wenn jemand etwas zu verbergen hat, ist es unsere Aufgabe, ihn zu sauberem Wasser zu bringen.

Theorie

Aufgrund der Besonderheiten der JavaScript-Ausführung verfügen alle Verschlüsseler und Packer trotz ihrer Vielfalt nur über zwei Versionen des Algorithmus:

	 var encrypted = 'verschlüsselte Daten';
	 Funktion entschlüsseln (str) {
	  // Entschlüsselungs- oder Entpackfunktion
	 }}
	 // Führen Sie das entschlüsselte Skript aus
	 eval (entschlüsseln (verschlüsselt));
	

oder als Option:

	 var encrypted = 'verschlüsselte Daten';
	 Funktion entschlüsseln (str) {
	  // Entschlüsselungs- oder Entpackfunktion
	 }}
	 // Entschlüsselte Daten anzeigen
	 document.write (entschlüsseln (verschlüsselt));
	

Die zweite Methode wird am häufigsten verwendet, um den Quell-HTML-Code der Seite sowie verschiedene Trojaner zum Einbetten von schädlichem Code, z. B. eines versteckten Rahmens, in die Seite zu schützen.

Beide Algorithmen können kombiniert werden, es kann jeden "ausgetricksten" und verwirrenden Entschlüsseler geben, nur das Prinzip bleibt unverändert.

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

Wie kann man sie abfangen?

Versuchen Sie, eval () durch alert () zu ersetzen. In der sich öffnenden MessageBox wird der entschlüsselte Text sofort angezeigt.

In einigen Browsern können Sie Text aus MessageBoxen kopieren. Es ist jedoch besser, diesen halbautomatischen Decoder zu verwenden:

	 <html>
	 <head> <title> JavaScript-Decoder </ title> </ head>
	 <body>

	 <script type = "text / javascript">
	 // Funktion zum Protokollieren von Entschlüsselungsergebnissen
	 Funktionsdecoder (str) {
	  document.getElementById ('decodiert'). value + = str + '\ n';
	 }}
	 </ script>

	 <! - Protokollfenster ->
	 <textarea id = "decoded" style = "width: 900px; height: 500px;"> </ textarea>

	 <script type = "text / javascript">
	 // Fügen Sie hier zuvor das verschlüsselte Skript ein
	 // Ersetze alle Aufrufe von eval () und document.write () durch decoder ().
	 </ script>

	 </ body>
	 </ html>
	

Nehmen wir zum Beispiel ein Skript von Yandex und sehen uns den Quellcode an. Wir sehen 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"); [остальной такой же бред отрезан]

Ich muss sofort sagen, dass dieses Skript von JavaScript Compressor verarbeitet wurde. Es ist leicht an seiner Signatur zu erkennen - dem charakteristischen Namen der Funktion am Anfang des Skripts. Wir kopieren den gesamten Quellcode des Skripts, ersetzen die erste Auswertung durch einen Decoder , fügen sie in den Decoder ein und speichern sie als HTML-Seite.

	 <script type = "text / javascript">
	 // Fügen Sie hier zuvor das verschlüsselte Skript ein
	 // Ersetze alle Aufrufe von eval () und document.write () durch decoder ().
	 Decoder (Funktion (p, a, c, k, e, r) {e = Funktion (c) {return (c <a? '': e ...
	 </ script>
	

Öffnen Sie es in einem beliebigen Browser und stellen Sie sicher, dass das entpackte Skript sofort im Textbereich angezeigt wird. Es ist zu früh, um sich zu freuen, es hat alle Zeilenumbrüche und Code-Formatierungen beseitigt. Wie man damit umgeht, steht in einem Artikel über Deobfuscation .

Zweites Beispiel. Von HTML Protector abgedeckte HTML-Seite. Dies ist eine Seite, die die Funktionen des Programms demonstriert. Daher sind alle Optionen enthalten: Blockieren der Auswahl und des Kopierens von Text, Sperren der rechten Maustaste, Schützen von Bildern, Ausblenden der Statusleiste, Verschlüsseln des HTML-Codes usw. Öffnen Sie den Quellcode, schauen Sie. Ganz oben sind uns document.write und ein verschlüsseltes Skript bereits bekannt. Führen Sie es durch den Decoder, wir haben die Funktion, den Hauptinhalt zu entschlüsseln:

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

Wir ersetzen das letzte document.write durch einen Decoder in der Funktion und fügen danach alle drei verbleibenden verschlüsselten Skripte ein:

	 <script type = "text / javascript">
	 // Fügen Sie hier zuvor das verschlüsselte Skript ein
	 // Ersetze alle Aufrufe von eval () und document.write () durch decoder ().
	 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>
	

Der Einfachheit halber enthält der Artikel keine vollständigen Skripte, Sie müssen sie jedoch vollständig kopieren. Wir öffnen den Decoder im Browser und sehen die vom Programm hinzugefügten Schutzskripte und den entschlüsselten Quelltext 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, nichts kompliziertes. Andere HTML-Seitenschutzfunktionen werden ebenfalls entfernt.

Software zur Suche nach Trojanern und anderem Schadcode

Für komplexere Fälle muss schwere Artillerie eingesetzt werden. Dies ist ein kostenloses Malzilla- Projekt, mit dem Trojaner und anderer schädlicher Code untersucht werden sollen. Da alle Programme zum Schutz des Urheberrechts in einzigartiger Weise böswillig sind, wird Malzilla uns im Kampf gegen sie helfen. Laden Sie die neueste Version herunter, entpacken Sie sie und führen Sie sie aus. Öffnen Sie die zweite Registerkarte Decoder, geben Sie den Code für das verschlüsselte Skript im oberen Fenster ein und klicken Sie auf die Schaltfläche Skript ausführen.

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

Der Ordner eval_temp enthält alle Ergebnisse der Ausführung der Funktionen eval () , einschließlich der Zwischenfunktionen. Sie können durch Klicken auf die Schaltfläche eval () -Ergebnisse anzeigen angezeigt werden. Der Text wird im unteren Fenster geöffnet. Es kann kopiert, in das obere Fenster eingefügt und sofort durch Drücken der Schaltfläche Code formatieren formatiert werden. Neben dem Decoder verfügt Malzilla über viele weitere Tools und Einstellungen, mit denen sich der Schutz vor JavaScript-Skripten leicht entfernen lässt.

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

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

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

Ich bin gerade auf die Aufgabe gestoßen, die durch <? Php eval ( gzinflate ( base64_decode ( ' codierter Text ' ))) codierte Datei langsam zu öffnen . ?> PHP-Code.

Wie immer habe ich mich für einen Hinweis an Google gewandt. Die Antwort wurde wie immer gefunden.

Code:

	 <html>
	 <body>
	 <! - Beginn der Entschlüsselung ->
	 <? php
	 $ str = gzinflate (base64_decode ('codierter Text'));
	 während (1) {
	 if (($ pos1 = strpos ($ str, 'eval (')) === FALSE) {
	 Pause;
	 }}
	 $ pos2 = strpos ($ str, ');');
	 $ newstr = substr ($ str, $ pos1 + 5, $ pos2- $ pos1-5);
	 eval ('$ str ='. $ newstr. ";");
	 }}
	 print $ str;
	 ?>
	 <! - Ende der Entschlüsselung ->
	 </ body>
	 </ html>
	

Speichern Sie diese Datei nach Ihren Wünschen, laden Sie sie auf den Host hoch oder führen Sie sie auf Ihrem lokalen Host aus und kopieren Sie alles zwischen den Tags aus der Quelle

<! - 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)

Gehen Sie in diesem Fall wie folgt vor:

  1. Speichern Sie diese Datei als decrypt.php
  2. Verschlüsselter Code als coded.txt speichern
  3. Erstellen Sie eine leere decoded.txt-Datei (wenn Sie die Datei auf dem Server ausführen, geben Sie CHMOD 0666 dafür an).
  4. Führen Sie die Datei decrypt.php aus
  5. Die Datei decoded.txt sollte jetzt den entschlüsselten PHP-Code enthalten.

Code:

	 <? php
	 / *
	 Entnommen aus 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 mit dem Namen decoded.txt (von der Shell aus CHMOD 0666 decoded.txt)
	 4. Führen Sie dieses Skript aus (besuchen Sie decrypt.php in einem Webbrowser oder führen Sie php decrypt.php in der Shell aus).
	 5. Öffnen Sie decoded.txt. Das PHP sollte entschlüsselt werden, wenn Sie keinen Kommentar unter http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/ abgeben.
	 * /
	 echo "\ nDECODE verschachtelte Bewertung (gzinflate ()) von DEBO Jurgen <jurgen@person.be> \ n \ n";
	 echo "1. Lesen von coded.txt \ n";
	 $ fp1 = fopen ("coded.txt", "r");
	 $ content = fread ($ fp1, Dateigröße ("coded.txt"));
	 fclose ($ fp1);
	 Echo "2. Decodierung \ n";
	 while (preg_match ("/ eval \ (gzinflate /", $ content)) {
	  $ content = preg_replace ("/ <\? | \?> /", "", $ content);  eval (preg_replace ("/ eval /", "\ $ content =", $ content));  } echo "3. Decoded.txt schreiben \ n";  $ fp2 = fopen ("decoded.txt", "w");  fwrite ($ fp2, trim ($ content));  fclose ($ fp2);
	 ?> 

Beim Entschlüsseln des Quellcodes stellte ich fest, dass die Freeware-Anwendung Spyware auf die Computer der Besucher heruntergeladen und regelmäßig Popups mit offensichtlichem Spam initiiert hatte. Ich habe diesen Artikel veröffentlicht, damit andere die tatsächliche Quelle dieser Anwendungen untersuchen können, um zu verhindern, dass sie versehentlich bösartigen Code auf ihren Websites ausführen. Ich hoffe, dies hat einigen von Ihnen geholfen und ich werde mich bemühen, von nun an weiterhin nützliche und aufschlussreiche Einträge zu veröffentlichen.

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

Wie entschlüssele ich den Code und entferne kommerzielle Links aus kostenpflichtigen und kostenlosen Skripten?

Fall Eins:

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

Wenn wir den String eval (base64_decode ('SGksIG1hbg ==')) erfüllen,
dann geh vorbei dieser Link Fügen Sie zum Online-Decoder nur SGksIG1hbg == aus unserer Zeile in das Formular ein und klicken Sie auf die Schaltfläche "Daten dekodieren".

Fall zwei:

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

Wenn wir die Zeile eval erfüllen (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); ,
wir gehen vorbei dieser Link und füge die gesamte Zeile in das Formular ein, beginnend mit eval (gzinflate und endend ))); und klicken Sie auf "Dekodieren".

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

So entschlüsseln Sie bösartige Malware in PHP-Code wie:

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

Sie können einfach die Auswertungsfunktion durch die Echofunktion ersetzen und sehen, was passiert ist.

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

Wenn keine der Methoden geholfen hat, ist es kein Schicksal :(

Wenn Sie auf andere Optionen zur Lösung dieses Problems gestoßen sind, schreiben Sie in den Kommentar, wir werden versuchen, diese zu beheben.