Créer des rapports et listes personnalisés avec IsoBuster

Il y a 2 manières de créer des listes personnalisées. Via la ligne de commande et via l'interface. Elles sont présentes depuis longtemps mais les commandes et tags disponibles ont augmenté exponentiellement dans IsoBuster 4.1. En fait, la possitibilité de le faire via l'interface est peu connue et n'est plus qu'un sous-ensemble de ce qu'elle est devenue.

Créer des listes / rapports via la ligne de commande

Comme expliqué, cette fonctionnalité basique est disponible depuis longtemps et cette section de l'aide à ce sujet est assez parlante. Bien sûr, le nombre de commandes et tags est démultiplié par rapport aux versions antérieures à IsoBuster 4.1. Merci de jeter un oeil à cette section du fichier d'aide sur la création de listes via la ligne de commande pour démarrer.

Listes / rapports personnalisés via l'interface

Cette option nécessite plus d'explications. Elle est basée sur un seul texte par rapport, qui est stocké dans la Base de registre. Vous pouvez y enregistrer jusqu'à 10 textes de rapport. IsoBuster, au démarrage, va utiliser ces textes pour créer l'option d'exportation de listes accessible via le clic-droit. Les textes sont identiques à ceux que vous utiliseriez en ligne de commande. Donc, à nouveau, pour la liste de tous les tags et commandes, consultez cette section du fichier d'aide sur la création de listes via la ligne de commande pour démarrer.

Cependant, il existe quelques commandes qui ne sont utiles que pour une utilisation via l'interface. En voici la liste :

  • {'Title'}    Si utilisé, cela doit être le premier paramètre sur la ligne, sinon il sera ignoré. Il ne peut contenir que du texte entre guillemets simples
  • {%DEFAULT}   Ce paramètre est utilisé pour définir le rapport ou la liste comme étant par défaut (en gras et exécuté lorsqu'on double-clique sur l'objet parent)
  • {%CHECKED}   Ce paramètre est utilisé si vous souhaitez afficher une coche à côté du titre
  • (%INVISIBLE} Ce paramètre est utilisé pour masquer complètement le rapport. Cela n'est pas très utile pour des rapports personnalisés mais cela en a lorsque vous ajoutez ou remplacez des rapports intégrés à IsoBuster

Pour intégrer vos propres rapports à l'interface, créez un fichier texte et ajoutez "CustomFileList1" jusqu'à "CustomFileList10" avec vos propres textes de commande dans la clé "[HKEY_CURRENT_USER\Software\Smart Projects\IsoBuster]" (consultez l'exemple ci-dessous pour le texte qui est requis pour que cela fonctionne). Renommez le fichier texte en quelquechose.reg. Double-cliquez sur ce fichier .reg et autorisez la Base de Registre de Windows à apporter des changements dans le registre. Démarrez IsoBuster et découvrez la nouvelle fonctionnalité.

Voici un exemple fonctionnel que vous pouvez copier et coller dans un fichier texte, et l'utiliser comme base pour votre propre projet (ou téléchargez le fichier reg d'exemple ici) :

REGEDIT4

[HKEY_CURRENT_USER\Software\Smart Projects\IsoBuster]

"CustomFileList1"="{'XML (IsoBuster 4.1 version)'}{%UTF8}{%XML}{%GMT}{%STREAMS}<%XMLHEADER><%BR><xml><%BR><Creator><%BR> <Application><%APP></Application><%BR> <Version><%VERSION></Version><%BR> <Operator><%USER></Operator><%BR> <OS><%OS></OS><%BR> <Start_Time_Date><%SYSTIMEDATE></Start_Time_Date><!--GMT--><%BR></Creator><%BR><%BR><Source><%BR> <Target_Name><%NAME></Target_Name><%BR> <Target_Type><%TYPE></Target_Type><%BR> <Target_Time_Date><%TIMEDATE></Target_Time_Date><!--GMT--><%BR> <Partition_LBA><%PARTITIONLBA></Partition_LBA><!--Session in case of optical--><%BR> <Partition_Blocks_Cnt><%PARTITIONBLOCKS></Partition_Blocks_Cnt><!--Session in case of optical--><%BR> <Media_Blocks_Cnt><%DEVICEBLOCKS></Media_Blocks_Cnt><!--Entire Device or inserted Media--><%BR> <Device><%DEVICE></Device><%BR> <Block_Size><%DEVICEBLOCKSIZE></Block_Size><!--Bytes--><%BR> <ImageFile><%DEVICEPATH></ImageFile><!--If working from imagefile--><%BR> <ImageFile_Size><%DEVICEFILESIZE></ImageFile_Size><!--Bytes--><!--If working from imagefile--><%BR></Source>{%HEADER}{%FILE}<%BR><Object Name='<%NAME>'><!--File--><%BR> <Path><%RELPATH></Path><%BR> <Size><%BYTES></Size><!--Bytes--><%BR> <Total_Size><%TOTBYTES></Total_Size><!--Bytes -Includes Streams (and/or Resource Fork) size (if present)--><%BR> <Time_Date><%TIMEDATE></Time_Date><!--GMT--><%BR> <UID><%UID></UID><%BR> <Type><%TYPE></Type><%BR> <Creator><%CREATOR></Creator><!--Relevant if MAC File System--><%BR> <Streams Streams='<%STREAMS>'><%STREAMLOOP> </Streams><%BR> <Extents Extents='<%EXTENTS>'><%EXTENTLOOP> </Extents><%BR></Object>{%STREAM}<%BR><Object Name='<%NAME>'><!--Stream and/or Resource Fork--><%BR> <Path><%RELPATH></Path><%BR> <Size><%BYTES></Size><!--Bytes--><%BR> <Time_Date><%TIMEDATE></Time_Date><!--GMT--><%BR> <UID><%UID></UID><%BR> <Type><%TYPE></Type><%BR> <Extents Extents='<%EXTENTS>'><%EXTENTLOOP> </Extents><%BR></Object>{%EXTENT} <Extent Name='<%NAME>' Index='<%INDEX>'><%BR> <LBA><%LBA></LBA><%BR> <Last_LBA><%LASTLBA></Last_LBA><%BR> <Size><%BYTES></Size><!--Bytes--><%BR> <Offset_In_Block><%OFFSET></Offset_In_Block><%BR> <Blocks_Cnt><%BLOCKS></Blocks_Cnt><%BR> <Bad_Blocks_Cnt><%BADBLOCKS></Bad_Blocks_Cnt><%BR> </Extent>{%STREAMLOOP} <Stream Name='<%NAME>' Index='<%INDEX>'/>{%FOLDER}<%BR><Object Name='<%NAME>'><!--Folder--><%BR> <Path><%RELPATH></Path><%BR> <Size><%BYTES></Size><!--Bytes--><%BR> <Time_Date><%TIMEDATE></Time_Date><!--GMT--><%BR> <UID><%UID></UID><%BR> <Type><%TYPE></Type><%BR> <Streams Streams='<%STREAMS>'><%STREAMLOOP> </Streams><%BR> <Extents Extents='<%EXTENTS>'><%EXTENTLOOP> </Extents><%BR></Object>{%FOOTER}<%BR><Stats><%BR> <Objects><%CNT></Objects><%BR> <End_Time_Date><%SYSTIMEDATE></End_Time_Date><!--GMT--><%BR> <Elapsed_Time><%SYSTIMELAPSED></Elapsed_Time><%BR> <Elapsed_Time_Sec><%SYSTIMELAPSEDSEC></Elapsed_Time_Sec><%BR> <Elapsed_Time_NanoSec><%SYSTIMELAPSEDNANOSEC></Elapsed_Time_NanoSec><%BR></Stats><%BR><%BR></xml><%BR><!-- For more information: https://www.isobuster.com/reports -->"

"CustomFileList2"="{'DFXML (IsoBuster 4.1 version)'}{%UTF8}{%XML}{%GMT}{%FOLDERS}{%STREAMS}<%XMLHEADER><%BR><dfxml xmlns='http://www.forensicswiki.org/wiki/Category:Digital_Forensics_XML'<%BR> xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'<%BR> xmlns:dc='http://purl.org/dc/elements/1.1/'<%BR> xmlns:hfs='http://www.forensicswiki.org/wiki/HFS' version='1.0'><%BR><%BR> <metadata><%BR> <dc:type><%DEVICETYPE></dc:type><%BR> </metadata><%BR><%BR> <creator><%BR> <program><%APP></program><%BR> <version><%VERSION></version><%BR> <execution_environment><%BR> <start_time><%SYSTIMEDATE></start_time><!--GMT--><%BR> <os_version><%OS></os_version><%BR> <username><%USER></username><%BR> </execution_environment><%BR> </creator><%BR><%BR> <source><%BR> <device_model><%DEVICE></device_model><%BR> <image_filename><%DEVICEPATH></image_filename><%BR> <image_size><%DEVICEFILESIZE></image_size><%BR> <sectorsize><%DEVICEBLOCKSIZE></sectorsize><%BR> <devicesectors coding='base10'><%DEVICEBLOCKS></devicesectors><%BR> </source><%BR><%BR> <volume><%BR> <ftype_str><%TYPE></ftype_str><%BR> <partition_offset><%PARTITIONLBABYTESOFFSET></partition_offset>{%HEADER}{%FOLDER}<%BR> <fileobject><%BR> <filename><%RELPATH></filename><%BR> <name_type>d</name_type><%BR> <filesize><%BYTES></filesize><%BR> <alloc>1</alloc><%BR> <inode><%UID></inode><%BR> <mtime><%TIMEDATE></mtime><!--GMT--><%BR> <byte_runs><%EXTENTLOOP> </byte_runs><%BR> </fileobject>{%FILE}<%BR> <fileobject><%BR> <filename><%RELPATH></filename><%BR> <name_type>r</name_type><%BR> <filesize><%BYTES></filesize><%BR> <alloc>1</alloc><%BR> <inode><%UID></inode><%BR> <mtime><%TIMEDATE></mtime><!--GMT--><%BR> <hfs:HFStype_creator><%TYPE>/<%CREATOR></hfs:HFStype_creator><!--Only relevant if MAC File System--><%BR> <byte_runs><%EXTENTLOOP> </byte_runs><%BR> </fileobject>{%STREAM}<%BR> <fileobject><!--Stream or Resource Fork--><%BR> <filename><%RELPATH></filename><%BR> <name_type>-</name_type><%BR> <filesize><%BYTES></filesize><%BR> <alloc>1</alloc><%BR> <inode><%UID></inode><%BR> <mtime><%TIMEDATE></mtime><!--GMT--><%BR> <byte_runs><%EXTENTLOOP> </byte_runs><%BR> </fileobject>{%EXTENT} <byte_run img_offset='<%LBABYTEOFFSET>' len='<%BYTES>' />{%FOOTER} </volume><%BR><%BR> <runstats><%BR> <stop_time><%SYSTIMEDATE></stop_time><!--GMT--><%BR> <clock_seconds><%SYSTIMELAPSEDSEC></clock_seconds><%BR> </runstats><%BR><%BR></dfxml><%BR><!-- For more information: https://www.isobuster.com/reports -->"

"CustomFileList3"="{'-'}"

"CustomFileList4"="{'LBA+TIME+DATE+SIZE+PATH (Old style IsoBuster < 4.1 report)'}<%LBA> , <%TIMEDATE> , <%SIZE> , <%FULLPATH>"

Si vous utilisez cet exemple, vous verrez les options surlignées ajoutées à l'interface (pensez à redémarrer IsoBuster après avoir ajouté le texte)

Rapports personnalisés avec IsoBuster

Cliquez pour agrandir

Remplacez des types de listes / rapports via l'interface

Enfin, vous pouvez utiliser toutes les fonctionnalités de personnalisation des rapports pour remplacer ou améliorer celles présentes par défaut dans IsoBuster par les vôtres.

Pour cela, utilisez les clés de Registre EmdeddedFileList de la même manière que vous le feriez avec les clés CustomFileList. Tout le reste est identique. Vous pouvez remplacer toute une fonctionnalité par la vôtre ou en ajouter de nouvelles. Pour en ajouter, sans remplacer, utilisez le tag <%EMBEDDED> dans votre nouveau texte. <%EMBEDDED> sera remplacé par le texte d'origine, inclus dans le programme. Si vous ne spécifiez pas le Title, le titre enregistré dans le programme sera utilisé. Cela est particulièrement utile lorsque vous remplacez complètement une fonctionnalité.

Quelques exemples :

Exemple 1 : La fonctionnalité reste inchangée, mais les fichiers sont enregistrés avec un codage en UTF8 plutôt que UTF16 (utilisé par défaut)

Exemple 2 : La fonctionnalité reste inchangée mais ce type de liste est maintenant utilisé par défaut (et également cochée, pourquoi pas)

Exemple 3 : La fonctionnalité reste inchangée mais il y a un texte à la fin de la liste, indiquant la version utilisée d'IsoBuster

Exemple 4 : Fonctionnalité complètement nouvelle, avec un nouveau nom, etc.

Exemple 5 : Liste complètement retirée

REGEDIT4

[HKEY_CURRENT_USER\Software\Smart Projects\IsoBuster]

"EmdeddedFileList1"="{%UTF8}<%EMBEDDED>"

"EmdeddedFileList2"="{%DEFAULT}{%CHECKED}<%EMBEDDED>"

"EmdeddedFileList3"="<%EMBEDDED>{%FOOTER}<%BR>Créé avec <%APP> <%VERS>"

"EmdeddedFileList4"="{'Ma nouvelle liste'}{%UTF8}{%GMT}{%STREAMS}<%LBA>;<%NAME>;<%TOTSIZE>;<%TIME>"

"EmdeddedFileList5"="<%INVISIBLE>"