Archive

Posts Tagged ‘SciTE’

Désassembler un fichier swf grâce à FLASM

octobre 1st, 2009

Je suis en train d’aider un copain à faire évoluer son site : changement d’hébergement, utilisation de rewrite rule pour avoir des belles urls lisible, …

Tous ces changements ont abouti à un problème épineux. Pour certaines   fonctionnalités le site utilise des flashs (lecture de vidéos soumises à authentification par exemple) qui font des appels au site en URLLoader. Or comme les urls du site ont changé et que les adresses de vérifications dans les flashs ont été codées en dur (ce qui n’est pas beau du tout je vous l’accorde) il faut les modifier.  Manque de chance, nous ne disposons pas des sources des flashs pour effectuer les modifications. Heureusement il existe un outil, flasm, qui permet de désassembler les binaires flashs c’est-à-dire de générer un fichier texte contenant le langage machine de l’exécutable.

A la base cet outil a été développé pour les développeurs flash qui voulaient optimiser le bytecode généré par le compilateur pour le flash player. Personnellement j’ai plutôt tendance à faire confiance au compilateur ;)

Pour pouvoir utiliser l’outil, il vous faut premièrement télécharger le logiciel qui est disponible sous forme d’archive pour windows, mac et linux puis l’installer (par exemple dans le répertoire c:\flasm pour windows).

Ensuite pour désassembler un fichier swf, il suffit d’exécuter la commande suivante :

c:\flasm>flasm -d chemin_vers_swf/fichier.swf > chemin_vers_swf/fichier.flm

Vous obtenez en sortie un fichier avec l’extension .flm qui est lisible par un éditeur texte (dans mon cas j’utilise scite ;) ). Ce fichier contient des instructions assembleur qui représentent le langage machine exécuté par le player flash. Dans mon cas j’ai donc pu modifier les variables définissant les urls du site appelées. En effet toutes les variables apparaissent en clair dans le code assembleur. En général c’est une instruction push qui s’occupe de l’affectation des variables. Via une recherche il est très facile de retrouver ces affectations.

Une fois les modifications effectuées et sauvegardées sur le fichier flm, il reste à assembler le fichier flm pour générer un nouveau swf. Pour cela il suffit d’exécuter la commande suivante :

c:\flasm>flasm -a chemin_vers_swf/fichier.flm

Tout n’est pas rose et il y a une restriction. Pour le moment flasm ne peut désassembler que des fichiers swf actionScript 1 ou actionScript 2. Ce qui veut dire ques les flashs récents ne peuvent pas être désassemblés pour le moment. Ceci étant c’est un outil bien utile et sans celui-ci nous aurions été obligé de redévelopper l’intégralité des flashs du site.

Un grand merci à Christophe Bessis qui m’a fait découvrir cet outil.

VN:F [1.0.8_357]
Rating: 4.0/5 (4 votes cast)

developpement ,

SciTE un éditeur de texte et bien plus

décembre 17th, 2008

Aujourd’hui j’aimerai vous parler d’un éditeur de texte que j’affectionne tout particulièrement en tant que développeur : SciTE.

SciTE signifie Scintilla Text Editor. C’est donc un éditeur de texte qui utilise le composant Scintilla. Ce composant est un éditeur de code source particulièrement performant. Pour preuve, c’est ce composant que l’on retrouve dans d’autres logiciels d’édition tels que Notepad2.

Comme nous le verrons par la suite, SciTE est bien plus qu’un éditeur.

SciTE est disponible pour Linux et Windows et est téléchargeable à l’adresse suivante : http://www.scintilla.org/SciTEDownload.html.

Comme tous les éditeurs de texte SciTE offre la possibilité d’ouvrir plusieurs fichiers simultanément et de naviguer entre eux via des onglets.

De plus lors de l’édition de code (ce qui nous interesse sur ce blog) SciTE offre des fonctionnalités dignes des meilleurs IDE :

  • coloration syntaxique,
  • système de dépliage/repliage de bloc de code
  • appel d’un compilateur
  • fenêtre d’output

De plus tout est configurable avec SciTE malheureusement sans interface graphique. Il faut donc passer par l’édition des fichiers de properties.

Ces fichiers sont au nombre de trois (plus ceux dédiés aux languages spécifiques) :

  1. Le fichier Global définit les options globales par défaut de SciTE (c’est à dire, celles qui s’appliqueront à tous les utilisateurs). Il est préférable de ne pas y touché étant donné que ce fichier sera écrasé à chaque mise à jour
  2. Le fichier User,  qui définit les options pour  l’utilisateur courant.
  3. Le fichier Local qui définit les options à appliquer lors de l’édition de fichiers dans un fichier précis. Il doit se trouver dans le même dossier que les fichiers auxquels on veut appliquer ces paramètres.

Via ces fichiers vous pouvez complètement configurer le comportement de SciTE pour qu’il réponde à vos besoin.

Par exemple lors de l’édition de sources de balises (HTML ou MXML par exemple) vous pouvez configurer SciTE pour que celui-ci ferme automatiquement la balise que vous venez d’ouvrir en plaçant la curseur entre la balise ouvrante et la balise fermante. Pour cela, il vous suffit d’ajouter la ligne suivante au fichier de configuration :

xml.auto.close.tags=1

Un second exemple, il est possible de définir le look du système de repliage de bloc de code. Pour cela, il vous suffit de modifier la ligne suivante en remplaçant la valeur 1 pour une valeur allant de 0 à 4 (je vous laisse découvrir par vous même le résultat) :

fold.symbols=1

Pour plus d’information sur le paramétrage de SciTE, je vous invite à consulter la documentation en ligne.

En conclusion cet éditeur est vraiment très puissant bien que très léger d’utilisation et je ne peux plus m’en passer.

VN:F [1.0.8_357]
Rating: 4.7/5 (3 votes cast)

developpement , ,