Question:
Comment faire de l'ingénierie inverse d'un format de fichier de données propriétaire (par exemple, Smartboard Notebook)?
Thorn
2013-03-26 02:45:02 UTC
view on stackexchange narkive permalink

Comment dois-je commencer à essayer de procéder au reverse engineering de ce format de fichier? La seule chose à laquelle je peux penser est de sauvegarder un fichier simple, puis de creuser avec un éditeur hexadécimal. Mais comme le format de fichier peut être une sorte d'archive, cela semble être la mauvaise approche. J'ai toujours été un peu intéressé par l'idée de rétro-ingénierie d'un format de fichier, mais je ne l'ai jamais vraiment essayé. Comment dois-je commencer?

En particulier, je suis intéressé par Smart Notebook qui charge et enregistre les données dans des fichiers .notebook. Il s'agit d'un format de fichier propriétaire non documenté. SMART est le premier fabricant de tableaux blancs et son logiciel de bloc-notes est donc l'un des formats les plus populaires pour le contenu éducatif (présentation). Il existe un standard ouvert pour les fichiers de tableau blanc et Open Sankore est un programme open source qui peut les ouvrir et les enregistrer. Cependant, Smart Notebook n'est pas entièrement compatible avec le format de tableau blanc ouvert, je voudrais donc vraiment comprendre le format de fichier .notebook afin de pouvoir écrire un logiciel qui l'utilise. Les supports ouverts (fichiers .iwb) sont des archives zip contenant des images et des données SVG. Il me semble que les fichiers .notebook peuvent également être compressés ou au moins contenir un certain nombre de sous-fichiers (comme des images et des fichiers swf).

Est-il raisonnable de croire qu'une structure de répertoires pourrait être incorporée dans les fichiers .notebook?
Voici un site avec des fichiers smartboad pour référence. http://www.jmeacham.com/smart.board.htm
Je ne vois aucune prise en charge intégrée des fichiers .notebook. Juste pdf, iwb, images et ubz je pense que c'était. Si vous connaissez un plugin, vous devriez peut-être le lister sinon il semblerait que sankore ne supporte pas du tout .notebooka.
@cb88 Sankore ne prend pas en charge les fichiers .notebook; pour autant que je sache, il n'existe aucun logiciel capable de lire .notebook en dehors de Smart Notebook. J'ai l'impression que les fichiers .notebook sont les fichiers .doc MS Word des tableaux blancs interactifs, car Smart est le principal fournisseur de logiciels dans ce domaine. C'est pourquoi je souhaite effectuer une rétro-ingénierie du format.
@zv_ Je pense qu'il est raisonnable de s'attendre à une structure de répertoires ou au moins à un moyen pour un fichier notebook de contenir d'autres fichiers. Lorsque le contenu est inséré dans un fichier de bloc-notes (images, audio, Adobe .swf), ceux-ci sont intégrés à la page et font partie du fichier.
-1
Cela pourrait être une question vraiment utile et «top», si vous la rendez plus abstraite. À propos de l'inversion des formats de fichiers. Et la réponse pourrait contenir des techniques `` courantes '' pour ce faire, en écrivant des scripts python / etc, en utilisant des éditeurs hexadécimaux avancés, comme par exemple 010 éditeur, et ainsi de suite. À propos de la recherche floue et de la correspondance des modèles binaires. Tout comme divers outils statistiques, comme par ex. Cantor Dust (https://sites.google.com/site/xxcantorxdustxx/) (qui est encore un prototype).
@Thorn: Avez-vous obtenu les informations sur le fichier xbk? Avez-vous obtenu le document de spécification pour le même ou vous l'avez décodé manuellement?
Ni. Le format n'est pas officiellement documenté par les technologies intelligentes, mais le format n'est en réalité qu'un fichier zip. Il suffit de regarder quelques exemples pour comprendre l'essentiel et comme XML est lisible, je suis capable d'enregistrer quelques fichiers simples pour mieux comprendre le format. Les graphiques sont stockés au format SVG.
Deux réponses:
Dougall
2013-03-26 03:56:20 UTC
view on stackexchange narkive permalink

J'ai téléchargé abc chant.notebook à partir du site cb88 lié à:

  $ file "abc chant.notebook" abc chant .notebook: Données d'archive Zip, au moins v2.0 pour extraire $ unzip -t "abc chant.notebook" Archive: abc chant.notebook testing: images / temp (1) .png OK ... environ 200 lignes similaires .. . testing: attachments / Zachary.JPG OKAucune erreur détectée dans les données compressées de abc chant.notebook. $  

C'est un fichier zip valide contenant principalement des fichiers XML et image. Les fichiers .notebook auxquels vous faisiez référence sont-ils différents de ce fichier? Si tel est le cas, pourriez-vous télécharger un échantillon?

Je sais que cela n'entre pas vraiment dans le processus de l'inversion d'un format de fichier propriétaire, pour lequel je m'excuse. J'espère que quelqu'un d'autre pourra fournir une réponse plus intéressante à cet égard.

Wow - c'est beaucoup plus facile que je ne le pensais! Je dois avoir vérifié une version antérieure des fichiers notebook: xbk. Ce ne sont pas des fichiers zip mais .notebook l'est! D'une manière ou d'une autre, j'ai pensé que j'avais déjà vérifié cela et je n'y suis pas revenu.
0xC0000022L
2013-03-26 03:57:15 UTC
view on stackexchange narkive permalink

Eh bien, évidemment, les détails dépendront beaucoup des détails du format de fichier et de ce que vous espérez obtenir en général. Cependant, certaines étapes seront largement les mêmes. Une chose que vous pourriez faire est:

  1. essayez de trouver toutes sortes d'indices sur le format. Cela peut être une petite note dans un tableau d'affichage ou la copie en cache d'un site Web vieux d'un an qui a depuis disparu. Souvent, les gemmes n'apparaissent pas comme les meilleurs résultats de recherche lorsque vous recherchez quelque chose d'assez spécifique. Le désherbage des pages de résultats de recherche peut avoir un sens . Assurez-vous d'utiliser des outils tels que file qui recherchent des octets magiques et seraient capables d'identifier des choses qui ne sont pas évidentes à l'œil nu.
  2. trouver un programme propriétaire qui utilise le format et est capable de le lire / écrire (vous semblez l'avoir)
    1. Utilisez une technique d'erreur & d'essai telle que d'apporter des modifications distinctes au document, de les enregistrer et d'observer et de noter les différences, AFAIK voici comment les formats de fichiers MS Office ont été décodés initialement pour StarOffice (maintenant OOo et LibreOffice)
    2. reverse engineering du programme lui-même pour trouver les routines principales de lecture et d'écriture du format de données
  3. trouvez un programme open source de la même manière -> lisez son source

Si vous comprenez le langage dans lequel le programme de l'option 3 est écrit, pas de problème du tout. Si vous n'avez pas cela ou si vous êtes confronté à d'autres défis, vous devez recourir à la bonne vieille technique décrite au point 2, combler les lacunes avec des pièces que vous rassemblez avec la méthode 1.

Le point 2.1 devrait être évident: vous voulez savoir comment le texte récursif est encodé? Tapez du texte, formatez-le, enregistrez-le, observez le changement. Rincez, faites mousser, répétez.

Le point 2.2 demandera beaucoup plus d'efforts et devrait probablement être utilisé avec parcimonie pour vous assurer que vous avez bien les détails de la version 2.1.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...