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

Als Entschlüsseln eval (base64_decode ()); eval (gzinflate (base64_decode ()));

Mit dem Thema:


Wie zu entschlüsseln oder dekoding eval gzinflate base64_decode

Die Grundprinzipien der Verschlüsselung und Verpackung, die Schwächen der Umzäunungen, Möglichkeiten der manuellen Entfernung, sowie vielseitiger Werkzeuge für die automatische Entfernung von Packern und Vorhang Schutz von JavaScript - Skripten.

In der letzten Zeit wird der ursprüngliche Script-Code verschlüsselt oder verpackt.

Es begann in Yandex einzumischen, die DLE und anderen beliebten Design und schönen Geschichten über „kümmern sich um Sie“, „Wirtschaft des Verkehrs“ und anderen Unsinn sieht sehr lustig.

Nun, wenn jemand etwas zu verbergen hat, so dass unsere Aufgabe ist es, sie zu bringen Wasser zu reinigen.

Theorie

Aufgrund der Natur der JavaScript-Laufzeit aller shifrovschiki und Packers, trotz ihrer Vielfalt, haben nur zwei Varianten des Algorithmus:

	 var verschlüsselt = ‚codierte Daten‘; 
	 Funktion Entschlüsseln (str) { 
	  // Funktion Entschlüsseln oder dekomprimieren 
	 } 
	 // Führen Sie das Skript entschlüsselt 
	 eval (entschlüsseln (verschlüsselt)); 	
	

oder alternativ:

	 var verschlüsselt = ‚codierte Daten‘; 
	 Funktion Entschlüsseln (str) { 
	  // Funktion Entschlüsseln oder dekomprimieren 
	 } 
	 // Anzeige der entschlüsselten Daten 
	 document.write (entschlüsseln (verschlüsselt)); 
	

Ein zweites Verfahren, oft verwendet, um den Ausgang HTML-Seite Code zu schützen, sowie verschiedene Trojans für die Einführung von Schadcode in der Seite, wie beispielsweise einen versteckten Rahmen.

Beide Algorithmen können kombiniert werden, „ausgetrickst“ und die Einbeziehung der Entschlüsselung beliebig sein kann, bleibt es unverändert nur das Prinzip.

In beiden Fällen stellt sich heraus , daß die Funktion eval () und die document.write () vollständig entschlüsselten Daten übertragen.

Wie sie abfangen?

Versuchen Sie, die eval zu ersetzen () aufmerksam zu machen () und in der geöffneten MessageBox'e werden Sie den entschlüsselten Text sofort.

Einige Browser können Sie Text von MessageBox'ov kopieren, aber es ist besser, zu verwenden, nur eine solche halbautomatischen Decoder:

	 <Html> 
	 <Head> <title> JavaScript Decoder </ title> </ head> 
	 <Body> 
	 
	 <Script type = "text / javascript"> 
	 // Funktion des Protokoll der Ergebnisse der Dekodierung schreiben 
	 Funktionsdecoder (str) { 
	  document.getElementById ( 'dekodiert') = Wert + str + '\ n' .; 
	 } 
	 </ Script> 
	 
	 <! - Das Log-Fenster -> 
	 <Textarea id = "decodiert" style = "width: 900px; height: 500px;"> </ textarea> 
	 
	 <Script type = "text / javascript"> 
	 // Dieser Einsatz verschlüsselt Skript zuvor 
	 // ersetzen alle Anrufe an eval () und document.write () an den Decoder (). 
	 </ Script> 
	 
	 </ Body> 
	 </ Html> 
	

Nehmen wir zum Beispiel jedes Skript mit Yandex , Blick auf den Quellcode sehen wir etwas ungesund:

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 sagen , dass dieses Skript verarbeitet JavaScript Compressor wird leicht durch die Unterschrift anerkannt - einem charakteristischen Namen fukntsii am Anfang des Skripts. Kopieren Sie den gesamten Quellcode des Skripts, ersetzen Sie die erste eval auf dem Decoders, in den Decoder eingesetzt und speichern Sie es als HTML-Seite.

	 <Script type = "text / javascript">
	 // Dieser Einsatz verschlüsselt Skript zuvor
	 // ersetzen alle Anrufe an eval () und document.write () an den Decoder ().
	 Decoder (function (p, a, c, k, e, r) {e = function (c) {return (c <a '': E ...
	 </ Script>
	

Öffnen Sie sie in jedem Browser und sehen, dass einmal erschien in einem Textfeld das Skript entpackt. Es ist zu früh freuen, es entfernt alle Transfers von Linien und Code-Formatierung. Wie mit ihr in dem Artikel über beschäftigen deobfuscation .

Das zweite Beispiel. HTML-Seite, überdachtes Programm HTML Protector. Diese Seite zeigt die Fähigkeiten des Programms, so gibt es alle Möglichkeiten beteiligt: ​​Sperren Sie die Auswahl und das Kopieren von Text, Rechtsklick auf das Verbot, den Schutz von Bildern, die Statusleiste auszublenden, den HTML-Code zu verschlüsseln, usw. Open-Source-Code, suchen. An der Spitze der bereits bekannten document.write und verschlüsselten Skript. Wir führen Sie es durch den Decoder Hauptinhalt Entschlüsselungsfunktion erhalten:

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

Ersetzen - Funktion in dem letzten document.write am Decoder und legt , nachdem das drei verbleibenden verschlüsselte Script:

	 <Script type = "text / javascript"> 
	 // Dieser Einsatz verschlüsselt Skript zuvor 
	 // ersetzen alle Anrufe an eval () und document.write () an den Decoder (). 
	 hp_ok = true; hp_d01 Funktion (en) {.... 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 Papier-Skripts nicht vollständig, müssen Sie auch sie vollständig kopieren. Decoder im Browser geöffnet und sehen defensiven Skripte durch das Programm geschrieben, und entschlüsseln, den Quellcode der Seite. Der Einfachheit halber können Sie nur das dritte Skript, entschlüsseln, die den HTML-Code der Seite enthält. Das ist alles, der Schutz. Wie Sie sehen können, kompliziert nichts. Ebenso entfernen und andere HTML-Seiten schützen.

Software für die Untersuchung von Trojanern und anderen bösartigen Code

Bei komplexeren Fällen wird die schwere Artillerie Trab müssen. Dies ist ein freies Projekt Malzilla , für die Untersuchung von Trojanern und anderen bösartigen Code entworfen. Da alle Programme Urheberrecht zum Schutz eindeutig schädlich sind, wird Malzilla uns gegen sie im Kampf helfen. Herunterladen der neuesten Version, auspacken, laufen. Öffnen Sie die zweite Registerkarte Decoder im oberen Fenster den Code verschlüsselt Skript einzufügen, klicken Sie auf die Schaltfläche Skript ausführen.

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

In all den Ergebnissen der Funktion eval () eval_temp Ordner hinzugefügt werden , einschließlich der Zwischenprodukte. Sie können durch Klicken auf die Schaltfläche anzeigen eval () führt, wird der Text im unteren Fenster öffnen angezeigt werden. Es kann, Paste im oberen Fenster kopieren und unmittelbar unter Code - Format , indem Sie die Schaltfläche Format klicken. Neben dem Decoder hat Malzilla viele weitere Tools und Optionen, die es einfach keinen Schutz durch JavaScript-Skripten zu entfernen.

Wie zu entschlüsseln oder dekoding eval gzinflate base64_decode
Das Skript wurde erfolgreich decodiert und formatiert

Sie können auch die Aufmerksamkeit auf ein anderes kostenloses Tool zahlen mit verschlüsselten Skripte zu arbeiten - FreShow .

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

Konfrontierte gerade jetzt vor der Aufgabe , wie zum Öffnen des verschlüsselten durch Potikha < ? Php eval (gzinflate (base64_decode ( ‚codierter Text‘))) ?; ?> PHP - Code.

Wie immer zur Führung habe ich beschlossen, zu Google zu wenden. Die Antwort, fand wie immer gefunden.

Code:

	 <Html>
	 <Body>
	 <! - Start zu entziffern ->
	 <? Php
	 $ Str = gzinflate (base64_decode ( 'codierter Text'));
	 while (1) {
	 if (($ pos1 = strpos ($ str, 'eval (')) === FALSE) {
	 break;
	 }
	 $ Pos2 = strpos ($ str, ');');
	 $ Newstr = substr ($ str, $ pos1 + 5, $ pos2- $ pos1-5);
	 eval ( '$ str =' $ newstr .. ";");
	 }
	 print $ str;
	 ?>
	 <! - Ende Entschlüsselung ->
	 </ Body>
	 </ Html>
	

Speichern Sie die Datei, wie Sie möchten, zalivate auf dem Host oder in ihrer lokalhoste und eine Kopie des Quellcodes laufen alle, die sich zwischen den Tags ist

<! - Start zu entziffern ->
...
<! - Ende Entschlüsselung ->

All. entschlüsselten Code.

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

In diesem Fall müssen Sie folgendes tun:

  1. Speichern Sie diese Datei als decrypt.php
  2. Verschlüsselter Code speichern als coded.txt
  3. decoded.txt eine leere Datei erstellen (wenn Sie die Datei auf dem Server ausführen, geben sie CHMOD 0666)
  4. laufen decrypt.php Datei
  5. sollte nun entschlüsselten PHP-Code in der Datei decoded.txt liegen.

Code:

	 <? Php
	 / *
	 Entnommen http://www.php.net/manual/de/function.eval.php#59862
	 Anfahrt:
	 1. Speichern Sie diesen Schnipsel als decrypt.php
	 2. Speichern codiert PHP-Code in coded.txt
	 3. Erstellen Sie eine leere Datei mit dem Namen decoded.txt (von Shell tun CHMOD 0666 decoded.txt)
	 4. Führen Sie dieses Skript (Besuch in einem Web-Browser decrypt.php oder PHP decrypt.php in der Schale tun)
	 5. Öffnen Sie decoded.txt, sollte der PHP, wenn nicht unter http://danilo.ariadoss.com/decoding-eval-gzinflate-base64-decode/ kommentieren entschlüsselnden
	 * /
	 echo "\ nDECODE nested eval (gzinflate ()) durch DEBO Jurgen <jurgen@person.be> \ n \ n";
	 echo "1. Lese coded.txt \ n";
	 $ Fp1 = fopen ( "coded.txt", "R");
	 $ Inhalt = fread ($ fp1, Dateigröße ( "coded.txt"));
	 fclose ($ FP1);
	 echo "2. Decodierung \ n";
	 while (preg_match ( "/ eval \ (gzinflate /", $ contents)) {
	  $ Inhalt = preg_replace ( "/ <\ | \ ??> /", "", $ Inhalt);  eval (preg_replace ( "/ eval /", "\ $ contents =" $ contents));  } Echo "3. Schreiben decoded.txt \ n";  $ Fp2 = fopen ( "decoded.txt", "w");  fwrite ($ fp2, trim ($ contents));  fclose ($ fp2);
	 ?> 

Bei den Quellcode zu entschlüsseln erkannte ich, dass die Freeware-Anwendung Spyware auf Rechner der Besucher heruntergeladen sowie in regelmäßigen Abständen ausgelöst Pop-ups, die offensichtlich Spam enthalten. I veröffentlichte diesen Artikel, um für andere die eigentliche Quelle dieser Anwendungen zu untersuchen, um in der Lage sein, sie zu verhindern, dass versehentlich bösartigen Code auf ihren Websites laufen. Ich hoffe, das einige von euch geholfen und ich werde mich bemühen, auch weiterhin von jetzt an nützliche und interessante Einträge zu veröffentlichen.

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

Wie Sie den Code und entfernen Sie die Handelsverbindungen der kostenlosen und kostenpflichtigen Skripte zu entziffern?

Der erste Fall:

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

Wenn vstrechaemstroku eval (base64_decode ( 'SGksIG1hbg ==' )),
dann gehen Sie auf Link ein Online - Decoder wird in die Form eingelegt nur SGksIG1hbg == von unserer Linie und wir drücken Sie die Taste «Decode Daten».

Fall zwei:

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

Wenn die Leitung aufeinander treffen eval (gzinflate (base64_decode ( '80jNyclXyFTPVUhJTc5PSU0BAA == '))); .
Wir gehen schon Link und in die Form hat eine ganze Reihe beginnend mit eval (gzinflate und endend))); und klicken Sie auf «Decode».

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

böswilliges Eindringen in PHP-Code zu entschlüsseln, wie:

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

Sie können eine elementare Funktion eval Funktion Echo und sehen ersetzen , was passiert ist .

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

Wenn keine dieser Lösungen arbeiten, bedeutet das nicht Schicksal :(

Wenn Sie mehr erfüllt - für dieses Problem keine Lösungen, geben Sie bitte im Kommentar, werden wir versuchen , mit ihnen zu beschäftigen.