Je cherche spécifiquement à déminifier un fichier JavaScript minifié. Le changement de nom des variables n'est pas un gros problème, je veux qu'il soit suffisamment lisible pour pouvoir analyser l'exécution.
Le titre de votre question indique simplement l'inversion du code minifié, et pas nécessairement le comprendre. Mais si vous essayez de le comprendre, Opera Dragonfly ressemble à un outil que vous trouverez peut-être très utile ...
J'ai toujours utilisé Dragonfly pour analyser le code minifié. En plus d'avoir une jolie imprimante, il dispose également d'une fonctionnalité d'analyse incroyablement pratique.
Voici jQuery.min dans toute sa splendeur minifiée ...
Le bouton que j'ai entouré voici la jolie imprimante qui transforme soudainement le code en quelque chose comme ceci:
Ce qui est un bon début, mais c'est encore très difficile à comprendre sans une idée de ce à quoi il ressemble pendant l'exécution.
Vous devez d'abord déterminer quelle partie de la fonctionnalité d'un fichier minifié vous essayez de comprendre. Les points d'arrêt Événement sont extrêmement pratiques pour cela, car vous pouvez les définir pour presque toutes les entrées utilisateur ou pour la charge d'un élément. Par exemple, si je voulais voir ce qui se passe dans jQuery quand un événement mouseover se produit, je pourrais ajouter un point d'arrêt d'événement pour "mouseover". De cette façon, je peux voir où se trouve le point d'entrée dans le code lorsque je déplace ma souris sur un élément spécifique.
Lorsque votre code atteint un point d'arrêt, vous entrez dans un mode où vous pouvez, comme dans de nombreux DOM débogueurs, interagissez avec l'état actuel du code que vous inspectez. Mais vous pouvez le faire en passant la souris sur des sections de code, il est donc très facile de garder le contexte du code à l'esprit.
Vous pouvez également inspecter la portée et qui fait référence à quoi à partir du sous-onglet "État" de l'onglet Scripts de la même manière que vous le pouvez avec la fenêtre source. Ainsi, vous pouvez voir si une variable en remplace une autre, ou si la magie de fermeture fantaisie se produit quelque part, ou de quelle portée une variable provient réellement. De plus, si vous regardez un élément DOM, vous pouvez passer la souris dessus pour le mettre en évidence sur la page. (Voir la dernière image.)
La console Dragonfly a également cette fonctionnalité de survol de la souris ... De plus, tout a une complétion par tabulation, vous pouvez donc exécuter n'importe quel code de n'importe quel état, inspectez à n'importe quel niveau d'exécution, réaffectez des variables, exécutez des tests ou naviguez simplement avec la complétion de [Tab] pour faire à peu près n'importe quoi pour comprendre ce que fait le code que vous regardez.
Opera's L'inspecteur vous aidera certainement à inverser et à comprendre le code minifié ou obscurci.