Deobfuscation PHP und JavaScript-Skripten

Mit dem Thema:


Einer der zuverlässigsten bisher Scripting-Schutz Methoden der Studie und Modifikation ist Verschleierung.

Obfuscation (vom lateinischen obfuscare, "dunkel, zu verschleiern.") - Obfuscated Code des Programms, dh die Reduktion des ursprünglichen Textes in die Form, bewahrt die Funktionalität des Programms, sondern erschwert die Analyse, das Verständnis und Modifikation von Algorithmen.

Im Gegensatz zur eindeutigen umkehrbarer Verschlüsselung und Verpackung, ist die Verschleierung rückgängig gemacht. Dies bedeutet, dass der Script-Code die ursprüngliche Form nicht möglich wiederherzustellen. Ohne Ausnahme Obfuscators PHP und JavaScript Arbeit auf zwei Arten: aus dem ursprünglichen Text, Zeilenumbrüche werden entfernt und unbedeutende Lücken und Klassennamen, Variablen und Funktionen sind mit einem sinnlosen Satz von Zeichen ersetzt. Diese Aktionen können beide 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. Aber es ist durchaus möglich, zu "verbessern", es zu dem Punkt, wo man kann leicht den Algorithmus herauszufinden und die notwendigen Änderungen vorzunehmen. Zum Beispiel, nach deobfuscation können den Schutz einiger der PHP-Skript zu brechen, entfernen Sie die Bindungsdomäne JavaScript, gezwungen Werbung oder irgendetwas anderes, so zu schneiden.

Die erste Stufe deobfuscation - Skript Textformatierung, Silbentrennung, richten Sie den Code einfach zu lesen "Leiter." Dazu verwende ich zwei Werkzeuge. Unternehmen Waterproof Software hat für die Formatierung von Code PHP-Skripte einen kleinen (weniger als 100 Kilobyte) freie Software entwickelt phpCodeBeautifier . Zum Herunterladen von ofsayta kostenlose Registrierung erforderlich, so dass hier für die Bequemlichkeit eines direkten Link zum Download. Das Programm Konsole, Befehlszeilenparameter können in den Anweisungen aus dem Archiv. Für Fans der Fenster 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 die Skripte in JavaScript und HTML-Code hat eine wunderbare Online - Service Verschönern Javascript ist . Legen Sie einfach in das 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 an stationären exe-Datei kompiliert. Vielleicht eines Tages finde ich die Zeit und Mühe, um das Skript in der vollständigen Anwendung neu zu schreiben.

Wenn formatieren Sie eine große Menge von Skripten für den Browser eine Nachricht kann angezeigt werden, dass das Skript gefriert, und bietet seine Hinrichtung zu stoppen. Es müssen nicht nur für die Verarbeitung länger dauert.

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

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

Wenn die beschädigte Variable und Funktionsnamen, gehen Sie dann auf den zweiten Teil deobfuscation. Hier leider keine fertigen Werkzeuge, na ja, oder zumindest habe ich nicht gesehen. Wenn jemand will, für das Schreiben dieses ein kostenloses Tool zu nehmen, kann ich eine detaillierte Beschreibung geben. So lange wie nötig, durch eine Theorie beschränkt zu werden.

So seltsam es klingt, aber für 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 durch bequemer für die Wahrnehmung, die Namen beschädigt und ersetzt werden entfernt. Zum Beispiel $ kOObgZ4tf2LEaSmFfc555 (Obfusc) oder $ IIIIIIIIIIIl (PHP LockIt!) Zu $ Var_3 ersetzen. Für ein einzelnes Skript kann dies für mehrere Skripte mit einem globalen Austausch in einem herkömmlichen Notebook durchgeführt werden müssen zuerst alle Namen aller Variablen Skripte zu entfernen, und nur dann wird eine globale ersetzen durchführen. Nicht über die Service - Variablen wie globale Arrays $ _GET und $ _POST in PHP, und reservierte Wörter in JavaScript vergessen. Ihr Verfahren ist nicht erforderlich. Um die Ersetzung wurde effizienter durchgeführt wird, ist es empfehlenswert, nach der Formatierung Code zu tun.

Dieser Artikel beschreibt nur allgemeine Grundsätze deobfuscation, wird jeder Fall zu durchdenken und individuelle Ansatz anwenden. Aber in der Regel durchzuführen Hacking oder eine separate Funktionsalgorithmus voll deobfuscation Parsen nicht erforderlich.