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

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

Nach Thema:


Wie entschlüsselt oder entschlüsselt eval gzinflate base64_decode

Die Grundprinzipien der Verschlüsselung und Verpackung, Schwachstellen des Schutzes, Methoden zum manuellen Entfernen sowie universelle Tools zum automatischen Entfernen von Packern und zum Schutz von Anhängen aus JavaScript-Skripts.

In letzter Zeit wird der Quellcode von Skripten zunehmend verschlüsselt oder verpackt.

Yandex, DLE und andere beliebte Projekte begannen, sich darauf einzulassen, und schöne Geschichten über „Benutzer kümmern“, „Verkehr einsparen“ und andere unsinnige Dinge sehen sehr komisch aus.

Wenn jemand etwas zu verbergen hat, müssen wir ihn ins klare Wasser bringen.

Theorie

Aufgrund der Art der Ausführung von JavaScript haben alle Encoder und Packer trotz ihrer Vielfalt nur zwei Varianten des Algorithmus:

	 var encrypted = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Entschlüsselung oder Entpackungsfunktion 
	 } 
	 // Entschlüsseltes Skript ausführen 
	 eval (entschlüsseln (verschlüsselt)); 	
	

oder als Option:

	 var encrypted = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Entschlüsselung oder Entpackungsfunktion 
	 } 
	 // Entschlüsselte Daten anzeigen 
	 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 schädlichen Code in die Seite einzufügen, beispielsweise einen verborgenen Rahmen.

Beide Algorithmen können miteinander kombiniert werden, das "ausgetrickst" und die Verschränkung des Dekoders kann beliebig sein, nur das Prinzip selbst bleibt unverändert.

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

Wie kann ich sie abfangen?

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

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

	 <html> 
	 <head> <title> JavaScript Decoder </ title> </ head> 
	 <Körper> 
	 
	 <script type = "text / javascript"> 
	 // Die Funktion, die Ergebnisse der Entschlüsselung in das Protokoll zu schreiben 
	 Funktionsdecoder (str) { 
	  document.getElementById ('decoded'). value + = str + '\ n'; 
	 } 
	 </ script> 
	 
	 <! - Log Fenster -> 
	 <textarea id = "decoded" style = "Breite: 900px; Höhe: 500px;"> </ textarea> 
	 
	 <script type = "text / javascript"> 
	 // Fügen Sie das verschlüsselte Skript hier ein 
	 // Ersetze alle eval () - und document.write () - Aufrufe mit decoder (). 
	 </ script> 
	 
	 </ body> 
	 </ html> 
	

Nehmen wir zum Beispiel ein Skript von Yandex , sehen wir uns den Quellcode an und 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 werde sofort sagen, dass dieses Skript vom JavaScript Compressor verarbeitet wird. Es ist leicht an seiner Signatur zu erkennen - dem charakteristischen Namen der Funktion am Anfang des Skripts. Kopieren Sie den gesamten Skript-Quellcode, ersetzen Sie das erste eval durch den Decoder , fügen Sie ihn in den Decoder ein und speichern Sie ihn als HTML-Seite.

	 <script type = "text / javascript">
	 // Fügen Sie das verschlüsselte Skript hier ein
	 // Ersetze alle eval () - und document.write () - Aufrufe mit 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 wurde. Es ist noch zu früh, um sich zu freuen, alle Zeilenumbrüche und Code-Formatierungen wurden entfernt. Wie man damit umgeht, ist in dem Artikel über Deobfuscation beschrieben .

Das zweite Beispiel HTML-Seite, abgedeckt mit dem Programm HTML Protector. Dies ist eine Seite, die die Möglichkeiten des Programms demonstriert. Es gibt also alle Optionen: Sperren der Auswahl und Kopieren von Text, Sperren der rechten Maustaste, Schützen von Bildern, Ausblenden der Statusleiste, Verschlüsseln von HTML-Code usw. Wir öffnen den Quellcode, wir schauen. Ganz oben steht ein bereits bekanntes document.write und ein verschlüsseltes Skript. Durchlaufen Sie den Decoder, wir bekommen die Funktion, den Hauptinhalt zu entschlüsseln:

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

Ersetzen Sie das letzte document.write durch den Decoder in der Funktion und fügen Sie danach alle drei verbleibenden verschlüsselten Skripts ein:

	 <script type = "text / javascript"> 
	 // Fügen Sie das verschlüsselte Skript hier ein 
	 // Ersetze alle eval () - und document.write () - Aufrufe mit 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 sind die Artikelskripte nicht vollständig, Sie müssen sie vollständig kopieren. Öffnen Sie den Decoder im Browser und sehen Sie die vom Programm hinzugefügten Sicherheitsscripts 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 alles der Schutz. Wie Sie sehen können, ist nichts kompliziert. Ebenso entfernte und andere Schutz-HTML-Seiten.

Software zur Erforschung von 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 eindeutig bösartig sind, wird Malzilla uns beim Kampf gegen sie helfen. Wir laden die neueste Version herunter, entpacken, ausführen. Öffnen Sie die zweite Registerkarte Decoder, fügen Sie den Code des verschlüsselten Skripts in das obere Fenster ein und klicken Sie auf die Schaltfläche Skript ausführen.

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

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

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

Sie können auch auf ein anderes kostenloses Tool zum Arbeiten mit verschlüsselten Skripts achten - FreShow .

Dekodierung <php eval ( gzinflate ( base64_decode ( ' kodierter Text ' ))); ?> - Option 1 (Skript)

Ich bin gerade auf das Problem gestoßen, dass das verschlüsselte über <? Php eval ( gzinflate ( base64_decode ( ' encoded text ' ))); ?> PHP-Code

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

Code:

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

Speichern Sie diese Datei wie gewünscht, laden Sie sie auf den Host hoch oder starten Sie sie auf Ihrem localhost und kopieren Sie alles zwischen den Tags aus der Quelle

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

Alle Der Code wird entschlüsselt.

Dekodierung <php eval ( gzinflate ( base64_decode ( ' kodierter Text ' ))); ?> - Option 2 (Skript)

In diesem Fall gehen Sie wie folgt vor:

  1. Speichern Sie diese Datei als decrypt.php
  2. Speichern Sie verschlüsselten Code als codierte.txt
  3. Erstellen Sie eine leere decoded.txt-Datei (wenn Sie die Datei auf dem Server ausführen, geben Sie sie an: CHMOD 0666)
  4. Führen Sie die Datei decrypt.php aus
  5. Die decoded.txt-Datei sollte jetzt den decodierten PHP-Code enthalten.

Code:

	 <? php
	 / *
	 Entgenommen aus http://www.php.net/manual/de/function.eval.php#59862
	 Wegbeschreibung:
	 1. Speichern Sie dieses Snippet als decrypt.php
	 2. Speichern Sie codierten PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei mit dem Namen decoded.txt (aus der Shell tun Sie CHMOD 0666 decoded.txt).
	 4. Führen Sie dieses Skript aus (besuchen Sie decrypt.php in einem Webbrowser oder decrypt.php in der Shell)
	 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/ eingeben.
	 * /
	 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 von decoded.txt \ n";  $ fp2 = fopen ("decoded.txt", "w");  fwrite ($ fp2, trim ($ contents));  fclose ($ fp2);
	 ?> 

Beim Entschlüsseln des Codes bin ich nicht sicher, ob ich ihn gesehen habe. Es hat sich gezeigt, dass es unmöglich ist, es loszuwerden. " Ich werde dir helfen, deinen Beitrag fortzusetzen.

Dekodierung <php eval ( gzinflate ( base64_decode ( ' kodierter Text ' ))); ?> - Option 3 (online)

Wie kann man den Code entschlüsseln und kommerzielle Links aus kostenpflichtigen und kostenlosen Skripts entfernen?

Fall eins:

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

Wenn wir die eval-Zeichenfolge (base64_decode ('SGksIG1hbg ==')) erfüllen,
dann gehen wir vorbei dieser Link Auf dem Online-Decoder fügen wir nur SGksIG1hbg == aus unserer Zeile in das Formular ein und klicken auf die Schaltfläche "Decode data".

Fall zwei:

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

Wenn wir die Zeichenfolge eval treffen (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); .
geh vorbei dieser Link und füge die gesamte Zeile in die Form ein, beginnend mit eval (gzinflate und endet ))); und klicken Sie auf "Decode".

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

So entschlüsseln Sie schädliche Einschlüsse in PHP-Code:

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

Sie können die Eval- Funktion einfach durch die Echo- Funktion ersetzen und sehen, was passiert ist.

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

Wenn keine der Methoden half, dann kein Glück :(

Wenn Sie andere Lösungen für dieses Problem haben, schreiben Sie den Kommentar, versuchen Sie es herauszufinden.