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

Deobfuscation PHP und JavaScript-Skripten

Mit dem Thema:


Einer der zuverlässigsten bisher scripting Schutzmethoden aus der Studie und Modifikation ist Verschleierung.

Obfuscation (vom lateinischen obfuscare, „dunkel, verschleiern.“) - Code des Programms verschleierte, das heißt, den ursprünglichen Text in die Form zu bringen, behält das Funktionsprogramm, sondern erschwert die Analyse und das Verständnis von Algorithmen und Modifikation.

Im Gegensatz zu der eindeutigen umkehrbaren Verschlüsselung und Verpackung, ist eine irreversibler Verschleierungsaktion. Dies bedeutet, dass der Skriptcode die ursprüngliche Form ist nicht möglich wiederherzustellen. Ausnahmslos Obfuscators PHP und JavaScript Arbeit auf zwei Arten: aus dem Quelltext Zeilenumbruch entfernt werden und unbedeutende Lücken und Klassennamen, Variablen und Funktionen sind mit einem sinnlosen Satz von Zeichen ersetzt. Diese Aktionen können sowohl unabhängig voneinander kombiniert und durchgeführt werden.

Wie ich schon sagte, wird der Code in der ursprünglichen Form zu bringen, nicht möglich, mit deobfuscation ist. Es ist aber durchaus möglich, „verfeinert“ es zu einem Punkt, wo man leicht den Algorithmus verstehen und die notwendigen Änderungen vornehmen. Zum Beispiel, nach deobfuscation können den Schutz einiger der PHP-Skript brechen, entfernen Sie die Bindungsdomäne JavaScript, gezwungen Werbung oder irgendetwas anderes, so zu schneiden.

Die erste Stufe deobfuscation - Skript Textformatierung, hyphenation, richten Sie den Code einfach zu lesen „Leiter“. Dazu verwende ich zwei Werkzeuge. Unternehmen Spritzwassergeschütz Software hat einen kleinen (weniger als 100 Kilobyte) das kostenlose Programm entwickelt , um den Code PHP-Skripte zu forma phpCodeBeautifier . Zum Herunterladen ofsayta es kostenlose Registrierung erforderlich, so dass hier für die Bequemlichkeit eines direkten Link zum Download. Das Programm ist eine Konsole, Kommandozeilen-Parameter in den Anweisungen aus dem Archiv. Für die Liebhaber des Fensters hat eine GUI-Version, obwohl älter, aber es ist durchaus möglich, eine Konsolendatei von der letzten Version zu setzen.

Деобфускация скриптов PHP и JavaScript

So formatieren Sie Skripte in JavaScript und HTML-Code hat einen wunderbaren Online - Service Verschönern Javascript ist . Legen Sie einfach in die Textform des Skripts, drücken Sie die Taste „Verschönern“ und eine schön formatierte Skript erhalten. Der Einfachheit halber bin ich ein wenig verändert und diese Seite einem stationären exe-Datei kompiliert. Vielleicht einen Tag finde ich die Zeit und Mühe das Skript in der vollständigen Anwendung neu zu schreiben.

Wenn formatieren Sie ein großes Volumen von Skripten Browser möglicherweise eine Meldung angezeigt, dass das Skript friert, und bieten seine Hinrichtung zu stoppen. Diese müssen nicht nur für die Verarbeitung mehr Zeit in Anspruch nimmt.

Деобфускация скриптов PHP и JavaScript

Wenn die Verschleierung durch die Namen der Variablen nicht ersetzt wird, können wir das nach der Formatierung, Code-Vervollständigung deobfuscation nehmen. In jedem Fall wird das Skript viel besser lesbar und verständlich

Wenn verdorbene Variable und Funktionsnamen, dann gehen wir zum zweiten Teil deobfuscation. Hier leider keine fertigen Werkzeuge, na ja, oder zumindest habe ich nicht gesehen. Wenn jemand will, für das Schreiben ein solches Tool kostenlos nehmen, kann ich eine detaillierte Beschreibung geben. So lange wie nötig durch die Theorie eingeschränkt werden.

So seltsam es klingen mag, aber deobfuscation die gleichen Grundsätze wie für die Verschleierung verwenden. Von allen Skripts abgerufen, die Namen aller Variablen und werden durch andere ersetzt. Der einzige Unterschied besteht darin, dass wir die Namen der beschädigten und für die Wahrnehmung durch bequemere ersetzt extrahieren werden. Zum Beispiel $ kOObgZ4tf2LEaSmFfc555 (Obfusc) oder $ IIIIIIIIIIIl (PHP LockIt!) Zu $ Var_3 zu ersetzen. Für ein einzelnes Skript kann dies mit einem globalen Ersatz für mehrere Skripte in einem herkömmlichen Notebook durchgeführt werden muß zuerst alle Namen aller Variablen Skripte entfernen, und erst dann einen globalen Austausch durchzuführen. Nicht über die Service - Variablen wie globale Arrays $ _GET und $ _POST in PHP, sowie reservierte Wörter in JavaScript vergessen. Ihr Verfahren ist nicht erforderlich. Um Ersatz effizienter durchgeführt, empfiehlt es sich nach der Formatierung Code zu tun.

Dieser Artikel beschreibt nur allgemeine Grundsätze deobfuscation, wird jeder Fall zu durchdenken und individuellem Ansatz anwenden. Aber in der Regel einen Einbruch oder eine separate Parsing-Funktion Algorithmus voll deobfuscation nicht erforderlich ist.