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

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

Nach Thema:


Wie man entschlüsselt oder entschlüsselt eval gzinflate base64_decode

Grundprinzipien der Verschlüsselung und Verpackung, Schutzschwächen, Möglichkeiten der manuellen Entnahme sowie universelle Werkzeuge zur automatischen Entnahme von Packern und Gelenkschutz vor JavaScript-Skripten.

In letzter Zeit wird der Quellcode von Skripten immer öfter verschlüsselt oder gepackt.

Yandex, DLE und andere beliebte Projekte begannen sich daran zu beteiligen, und schöne Motorräder über "Aufpassen der Benutzer", "Verkehrssparen" und anderen Unsinn-Look sehr lustig zu machen.

Nun, wenn jemand etwas zu verbergen hat, heißt es, dass wir es zu sauberem Wasser bringen sollen.

Theorie

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

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

oder als Option:

	 var encrypted = 'verschlüsselte Daten'; 
	 Funktion entschlüsseln (str) { 
	  // Funktion der Entschlüsselung oder Entpackung 
	 } 
	 // Anzeige der entschlüsselten Daten 
	 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, um bösartigen Code in die Seite einzufügen, beispielsweise einen versteckten Rahmen.

Beide Algorithmen können kombiniert werden, der "Heap" und die Verschränkung des Decryptors 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 sie abfangen?

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

Manche Browser ermöglichen es Ihnen, Text aus MessageBoxen zu 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 in das Entschlüsselungsergebnisprotokoll 
	 Funktionsdecoder (str) { 
	  document.getElementById ('decodiert'). value + = str + '\ n'; 
	 } 
	 </ script> 
	 
	 <! - Logfenster -> 
	 <textarea id = "decodiert" style = "width: 900px; height: 500px;"> </ textarea> 
	 
	 <script type = "text / javascript"> 
	 // Fügen Sie hier das verschlüsselte Skript ein 
	 // Ersetze alle eval () und document.write () Aufrufe mit decoder () darin. 
	 </ script> 
	 
	 </ body> 
	 </ html> 
	

Nehmen wir zum Beispiel ein Skript von Yandex , nachdem wir den Quellcode gesehen 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, es ist leicht zu lernen über die Signatur - der charakteristische Name der Funktion am Anfang des Skripts. Wir kopieren den gesamten Quellcode des Skripts, ersetzen den ersten eval durch den Decoder , fügen ihn in den Decoder ein und speichern ihn als HTML-Seite.

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

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

Das zweite Beispiel. HTML-Seite, abgedeckt durch das Programm HTML Protector. Dies ist eine Seite, die die Funktionen des Programms demonstriert, also alle Optionen: Blockieren der Auswahl und des Kopierens 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 Dokument.write 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 durch den Decoder in der Funktion und fügen danach alle drei verbleibenden verschlüsselten Scripts ein:

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

Zur Vereinfachung 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 Schutz von HTML-Seiten entfernt.

Software für Trojaner und andere bösartige Code-Forschung

Für komplexere Fälle muss schwere Artillerie eingesetzt werden. Dies ist ein kostenloses Malzilla- Projekt zur Untersuchung von Trojanern und anderen bösartigen Codes. 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, entpacken Sie sie, starten Sie sie. Öffnen Sie den zweiten Tab Decoder, im oberen Fenster fügen wir den Code des chiffrierten Skripts ein, wir drücken den Button Skript ausführen.

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

Im Ordner eval_temp werden alle Ergebnisse der Funktionen eval () einschließlich der Zwischenergebnisse ausgeführt. 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 Taste Code formatieren formatiert werden. Neben dem Decoder verfügt Malzilla auch über zahlreiche Tools und Einstellungen, um den Schutz vor JavaScript-Skripten zu entfernen.

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

Sie können auch auf ein weiteres freies Werkzeug für die Arbeit mit verschlüsselten Skripts achten - FreShow .

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

Konfrontiert gerade jetzt mit der Aufgabe sozusagen , leise verschlüsselt durch <? Php eval ( gzinflate ( base64_decode ( ' kodierter Text ' )))) aufzudecken ; ?> PHP-Code.

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

Code:

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

Speichern Sie diese Datei nach Belieben, füllen Sie sie auf dem Host aus oder führen Sie sie auf localhost aus und kopieren Sie aus der Quelle alles, was zwischen den Tags ist

<! - 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 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
	 / *
	 Genommen von http://www.php.net/manual/de/function.eval.php#59862
	 Richtungen:
	 1. Speichern Sie dieses Snippet als decrypt.php
	 2. Speichern Sie verschlüsselten PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei mit dem Namen decoded.txt (aus der Shell wird CHMOD 0666 decoded.txt)
	 4. Führen Sie dieses Skript aus (besuchen Sie decrypt.php in einem Webbrowser oder tun Sie php decrypt.php in der Shell)
	 5. Öffnen Sie decoded.txt, das PHP sollte entschlüsselt werden, wenn kein Kommentar unten http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/
	 * /
	 echo "\ nDECODE verschachtelt eval (gzinflate ()) von DEBO Jurgen <jurgen@person.be> \ n \ n";
	 echo "1. Lesen von 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 ("decoded.txt", "w");  fwrite ($ fp2, trim ($ contents));  fclose ($ fp2);
	 ?> 

Beim Entschlüsseln des Quellcodes habe ich festgestellt, dass die Freeware-Anwendung Spyware auf einer Site heruntergeladen hat. Ich habe diesen Artikel gelesen, damit andere auf ihren Websites bösartigen Code untersuchen und verwenden können. Ich hoffe, das hat einigen von euch geholfen und ich werde mich bemühen, die nützlichen und aufschlussreichen Beiträge von nun an fortzusetzen.

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

Wie entschlüsselt man den Code und entfernt kommerzielle Links aus bezahlten und kostenlosen Skripts?

Erster Fall:

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

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

Fall der zweiten:

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

Wenn wir auf die Linie eval treffen (gzinflate (base64_decode ('80jNyclXyFTPVUhJTc5PSU0BAA =='))); ,
wir gehen schon dieser Link und wir fügen die ganze Zeile in die Form ein, die mit eval beginnt (gzinflate und endend ))); und klicken Sie auf "Decode".

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

Bösartige Einschlüsse im PHP-Code-Typ zu entziffern:

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 grundlegendsten Methoden, um 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.