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üsselt oder dekodiert man 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-Skripten.

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

Yandex, DLE und andere beliebte Projekte haben begonnen, sich darauf einzulassen, und schöne Geschichten über "Pflege der Benutzer", "Sparen von Verkehr" und anderen Unsinn sehen sehr lustig aus.

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

Theorie

Aufgrund der Natur 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üsselungs- 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üsselungs- oder Entpackungsfunktion 
	 } 
	 // 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 zu schützen, die bösartigen Code in die Seite einschleusen, z. B. einen versteckten Frame.

Beide Algorithmen können kombiniert, „ausgetrickst“ und der Decoder beliebig verschränkt werden, 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 () übergeben werden.

Wie kann man sie abfangen?

Versuchen Sie eval () durch alert () zu ersetzen und 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> 
	 <body> 
	 
	 <script type = "text / javascript"> 
	 // Die Funktion zum Schreiben der Entschlüsselungsergebnisse in das Protokoll 
	 Funktionsdecoder (str) { 
	  document.getElementById ('decoded'). value + = str + '\ n'; 
	 } 
	 </ script> 
	 
	 <! - Protokollfenster -> 
	 <textarea id = "decoded" style = "width: 900px; height: 500px;"> </ textarea> 
	 
	 <script type = "text / javascript"> 
	 // Fügen Sie hier das verschlüsselte Skript ein 
	 // Alle eval () und document.write () Aufrufe durch decoder () ersetzen. 
	 </ script> 
	 
	 </ body> 
	 </ html> 
	

Nehmen wir zum Beispiel ein Skript von Yandex und schauen 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 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 die erste Auswertung 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 hier das verschlüsselte Skript ein
	 // Alle eval () und document.write () Aufrufe durch decoder () ersetzen.
	 Decoder (Funktion (p, a, c, k, e, r) {e = Funktion (c) {Rückgabe (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. Alle Zeilenumbrüche und Code-Formatierungen wurden entfernt. Wie man damit umgeht, steht im Artikel über Deobfuscation .

Das zweite Beispiel. HTML-Seite, die mit dem Programm HTML Protector abgedeckt wird. Dies ist eine Seite, die die Funktionen des Programms demonstriert, daher sind alle Optionen betroffen: Blockieren der Auswahl und des Kopierens 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. Führen Sie es durch einen Decoder, wir haben 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 Skripte ein:

	 <script type = "text / javascript"> 
	 // Fügen Sie hier das verschlüsselte Skript ein 
	 // Alle eval () und document.write () Aufrufe durch decoder () ersetzen. 
	 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 Sicherheitsskripten und den decodierten 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, nichts kompliziertes. Ebenso entfernt 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 bösartiger Code untersucht werden sollen. Da alle Programme zum Schutz des Urheberrechts eindeutig böswillig sind, hilft uns Malzilla im Kampf gegen sie. Wir laden die neueste Version herunter, entpacken, starten. Ö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 dekodiert man eval gzinflate base64_decode
Malzilla bei der Arbeit

Der Ordner eval_temp enthält alle Ergebnisse der eval () -Funktionen, einschließlich der Zwischenergebnisse. Sie können durch Klicken auf die Schaltfläche 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 Sie auf einfache Weise den Schutz vor JavaScript-Skripten entfernen können.

Wie entschlüsselt oder dekodiert man 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 .

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

Ich bin gerade auf das Problem gestoßen, das über <? Php eval ( gzinflate ( base64_decode ( ' encoded text ' )) codierte zu knallen . ?> PHP-Code

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

Code:

	 <html>
	 <body>
	 <! - 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. ";");
	 }
	 print $ str;
	 ?>
	 <! - Ende der Entschlüsselung ->
	 </ body>
	 </ html>
	

Speichern Sie diese Datei nach Ihren Wünschen, 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.

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

In diesem Fall gehen Sie wie folgt vor:

  1. Speichern Sie diese Datei als decrypt.php
  2. Speichern 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, geben Sie sie an CHMOD 0666)
  4. Führen Sie die Datei decrypt.php aus
  5. Die decoded.txt-Datei sollte nun den decodierten PHP-Code enthalten.

Code:

	 <? php
	 / *
	 Entnommen aus http://www.php.net/manual/de/function.eval.php#59862
	 Richtungen:
	 1. Speichern Sie dieses Snippet als decrypt.php
	 2. Speichern Sie den verschlüsselten PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei mit dem Namen decoded.txt (aus der Shell 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/ abgeben.
	 * /
	 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. decoded.txt schreiben \ n";  $ fp2 = fopen ("decoded.txt", "w");  fwrite ($ fp2, trim ($ contents));  fclose ($ fp2);
	 ?> 

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

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

Wie kann ich den Code entschlüsseln und kommerzielle Links aus kostenpflichtigen und kostenlosen Skripten entfernen?

Fall Eins:

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

Wenn wir den eval-String treffen (base64_decode ('SGksIG1hbg ==')) ,
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 "Daten decodieren".

Fall zwei:

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

Wenn wir den String eval treffen (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); ,
geh vorbei dieser Link und füge die ganze Zeile in das Formular ein, beginnend mit eval (gzinflate und end ))); und klicken Sie auf "Decode".

<? php eval ( ( base64_decode ( ' codierter Text ' )); Option 4 (unter Verwendung von Echo)

So entschlüsseln Sie böswillige Einträge im PHP-Typcode:

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, dann kein Glück :(

Wenn Sie andere Lösungen für dieses Problem gefunden haben, schreiben Sie sie in den Kommentar und versuchen Sie, mit ihnen umzugehen.