Je profite de la faille 0Day de Windows concernant les fichiers .LNK (les célèbres raccourcis Windows), pour vous présenter Shellify. Shellify est née de mon double besoin de vouloir créer des raccourcis relatifs et de pouvoir regarder en détail le format des fichiers .LNK (par défaut sous Windows ces derniers sont obligatoirement absolus).
J’ai donc écrit une implémentation 100% managée (il fallait auparavant utiliser des objets COM / IShellLink) qui permet de gérer ce format. Ci après le rapport de MoMa - Mono Migration Analyzer:
ShellifyTool, un outil en ligne de commande, illustre l’utilisation de la bibliothèque et permet de manipuler les principaux attributs des fichiers :
Il est en particulier possible de supprimer toutes les références à vos informations personnelles qui sont sympathiquement stockées dans les raccourcis : le nom de votre machine, le label et le numéro de série de votre disque dur, les métadonnées sur la cible du lien (il existe d’ailleurs dans le format un bloc technique au nom évocateur : le TrackerDataBlock).
L’implémentation est presque complète (le dossier de spécification Microsoft fait quand même 52 pages, je m’attendais à moins de richesse), je finaliserai les petits détails à l'occasion. Pour info les données techniques sont disponibles depuis mi-2009 avec l’effort de Microsoft à ouvrir ses formats.
Enfin, Shellify est capable en l'état de ‘roundtriper’ à l’octet près tous les fichiers. (Des fichiers de tests sont d’ailleurs fournis dans le code source : raccourcis xp, seven, vers des fichiers locaux et/ou réseau, avec de nombreux blocs d’extensions)
Binaires:
Code source:
Commentaires