Désobfuscation PHP et JavaScript scripts
L'un des plus fiables à ce jour scripting méthodes d'étude et de modification de protection est obscurcissement.
Obfuscation (de la obfuscare latine, «obscure, obfusquer.») - Le code Obfuscated du programme, à savoir la réduction du texte original à la forme, préserve la fonctionnalité du programme, mais complique l'analyse, la compréhension et la modification des algorithmes.
Par contraste avec le chiffrement et le conditionnement unique réversible, obscurcissement est une action irréversible. Cela signifie que le code de script pour restaurer la forme d'origine est impossible. Sans exception Obfuscators PHP et JavaScript travail de deux manières: à partir du texte original, les sauts de ligne sont supprimés et les lacunes insignifiantes et les noms de classes, variables et fonctions sont remplacées par un jeu de sens de caractères. Ces actions peuvent aussi être combinées et exécutées indépendamment.
Comme je l'ai déjà dit, pour amener le code sous la forme originale est pas possible avec désobfuscation. Mais il est tout à fait possible de «améliorer» au point où vous pouvez facilement comprendre l'algorithme et apporter les changements nécessaires. Par exemple, après désobfuscation peut briser la protection de certains des script PHP, supprimer le domaine de liaison JavaScript, contraints de réduire la publicité ou autre chose comme ça.
La première étape de désobfuscation - Script de formatage de texte, césures, aligner le code facile à lire "échelle." Pour cela, j'utilise deux outils. Company Software WaterProof a développé une petite (moins de 100 kilo - octets) des logiciels libres pour le formatage du code PHP-scripts phpCodeBeautifier . Pour le télécharger depuis ofsayta nécessitent une inscription gratuite, donc ici pour la commodité d'un lien direct vers le téléchargement. La console de programme, les paramètres de ligne de commande peut être trouvée dans les instructions de l'archive. Pour les fans des fenêtres a une version GUI, bien plus ancienne, mais il est tout à fait possible de mettre un fichier de console de la dernière version.
Pour formater les scripts JavaScript et HTML code dispose d' un service en ligne merveilleuse Beautify Javascript est . Il suffit d'insérer dans la forme de texte du script, appuyez sur le bouton "Beautify" et obtenir un script bien formaté. Pour plus de commodité, je suis un peu modifié et compilé cette page à stationnaire fichier exe. Peut-être un jour je trouve le temps et l'effort de réécrire le script dans la pleine application.
Lorsque vous formatez une grande quantité de scripts pour le navigateur peut afficher un message indiquant que le script se fige, et offrira pour arrêter son exécution. Il ne doit pas, juste pour le traitement prend plus de temps.
Si l'obscurcissement est pas remplacé par les noms des variables, on peut supposer que, après le formatage, la complétion de code désobfuscation. Dans tous les cas, le script devient beaucoup plus lisible et compréhensible
Si les noms de variables et de fonctions corrompues, puis passez à la deuxième partie désobfuscation. Ici, malheureusement, il n'y a pas d'outils prêts à l'emploi, et bien, ou du moins je ne les ai pas vu. Si quelqu'un veut prendre un outil gratuit pour écrire, je peux donner une description détaillée. Aussi longtemps que nécessaire pour être limité par la théorie.
Aussi étrange que cela puisse paraître, mais pour désobfuscation utiliser les mêmes principes que pour les faux-fuyants. De tous les scripts récupérés les noms de toutes les variables, et sont remplacés par d'autres. La seule différence est que nous supprimerons les noms des corrompus et remplacés par plus commode pour la perception. Par exemple $ kOObgZ4tf2LEaSmFfc555 (Obfusc) ou $ IIIIIIIIIIIl (de LockIt PHP!) Pour remplacer Var_3 $. Pour un seul script cela peut être fait dans un ordinateur portable classique avec un remplacement global pour plusieurs scripts doivent d'abord supprimer tous les noms de toutes les variables de scripts, et seulement alors effectuer un remplacement global. Ne pas oublier les variables de services tels que les tableaux mondiaux $ _GET et $ _POST en PHP, et les mots réservés en JavaScript. Leur processus est pas nécessaire. Pour le remplacement a été effectué de manière plus efficace, il est recommandé de faire après le formatage du code.
Cet article ne décrit que les principes désobfuscation général, chaque cas devra réfléchir et appliquer une approche individuelle. Mais généralement, pour mener à bien le piratage ou l'analyse d'un algorithme de fonction complète désobfuscation séparée non nécessaire.
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.