Erstelle benutzerdefinierte Berichte und Listen mit IsoBuster

Es gibt 2 Möglichkeiten, benutzerdefinierte Listen zu erstellen. Über die Befehlszeile und über das GUI. Beide sind schon seit einiger Zeit vorhanden, aber die verfügbaren Befehle und Tags sind in IsoBuster 4.1 mittlerweile exponentiell explodiert. Eigentlich war die GUI-Variante nie öffentlich bekannt und stellt auch nur eine Teilmenge dessen dar, was sie heute ist

Benutzerdefinierte Listen / Berichte über die Befehlszeile

Wie erläutert, ist diese Kernfunktionalität schon seit längerer Zeit verfügbar, und der Hilfeteil zu diesem Thema sollte selbsterklärend sein. Natürlich ist die Anzahl der verfügbaren Befehle und Tags nun eine Vielzahl von dem, was sie vor IsoBuster 4.1 war. Bitte lies dir daher diesen Hilfeabschnitt über das Erstellen von Listen über die Befehlszeile durch, um loslegen zu können.

Benutzerdefinierte Listen / Berichte über das GUI

Diese Option bedarf einer näheren Erläuterung. Sie basiert auf einer einzigen Zeichenfolge pro Bericht, die in der Registrierung gespeichert wird. Dabei kannst du bis zu 10 Berichtszeichenfolgen in der Registry speichern. IsoBuster verwendet diese Zeichenfolgen beim Start, um das Rechtsklick-Popup-Menü zu erstellen, das für den Export von Listen verwendet wird. Die Zeichenfolgen sind identisch mit den Zeichenfolgen, die du auf der Befehlszeile verwenden würdest. Noch einmal: Für alle Tags und Befehle liest du dir am Besten diesen Hilfeabschnitt durch, in dem alle Tags und Befehle erklärt werden, um dann loslegen zu können.

Es gibt jedoch einige wenige Befehle, die nur für die GUI-Implementierung sinnvoll sind. Diese Befehle sind hier aufgelistet:

  • {'Title'}    Wenn verwendet, muss es das erste Tag in der Zeile sein, sonst wird es ignoriert. Es kann beliebigen Text zwischen einfachen Anführungszeichen enthalten.
  • {%DEFAULT}   Dieses Tag wird verwendet, um einen Bericht/eine Liste zum Standard zu machen (fett und ausgeführt, wenn das übergeordnete Objekt doppelt angeklickt wird)
  • {%CHECKED}   Dieses Tag wird verwendet, wenn du ein Häkchen neben dem Titel anzeigen möchtest.
  • (%INVISIBLE} Mit diesem Tag wird ein Bericht vollständig ausgeblendet. Es macht nicht viel Sinn, dies für benutzerdefinierte Berichte zu verwenden aber es ist sinnvoll, wenn du bestehende eingebettete Berichte
  • überladen oder ersetzen möchtest .

Um eigene Berichte in das GUI einzubinden, musst du eine einfache Textdatei erstellen und die Zeichenketten "CustomFileList1" bis "CustomFileList10" mit deinen eigenen Befehlszeichenketten im Schlüssel "[HKEY_CURRENT_USER\Software\Smart Projects\IsoBuster]" hinzufügen (siehe das Beispiel unten für den Text, der dafür erforderlich ist). Benenne die Textdatei in something.reg um. Doppelklicke dann auf die .reg-Datei und lasse Windows' RegEdit die Änderungen an der Registrierung vornehmen. Starte IsoBuster und sieh dir die neue Funktionalität an.

Hier ist ein funktionierendes Beispiel, das du per Copy & Paste in eine Textdatei kopieren und als Basis für dein eigenes Projekt verwenden kannst (Oder Lade die Beispielreg-Datei hier herunter):

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>"

Wenn du dieses Beispiel verwendest, siehst du die hervorgehobenen Optionen, die dem GUI hinzugefügt wurden (vergewissere dich, dass du IsoBuster neu startest, nachdem du die Strings hinzugefügt hast)

Custom Reports with IsoBuster

Click to zoom

Überladen der vorhandenen Listen / Berichte über das GUI

Zuletzt kannst du auch die gesamte Funktionalität der benutzerdefinierten Berichte nutzen, um die vorhandene eingebettete Funktionalität zu überladen oder sogar zu ersetzen. Mit anderen Worten, kannst du die bestehenden Berichte in IsoBuster verbessern oder durch deine eigenen ersetzen.

Hierfür musst du den Registrierungsschlüssel-String EmdeddedFileList so verwenden, wie du den CustomFileList Registrierungsschlüssel-String verwenden würdest. Der Rest bleibt gleich. Du kannst die gesamte Funktionalität durch deine eigene ersetzen oder Funktionalität hinzufügen, die du benötigst. Zum Hinzufügen und nicht zum Ersetzen verwendest du den Tag <%EMBEDDED> in deiner neuen Zeichenfolge. <%EMBEDDED> wird durch die ursprüngliche, vom Programm bereitgestellte Zeichenfolge ersetzt. Wenn du keinen Titel angibst, wird immer noch der im Programm gespeicherte Titel verwendet. Letzteres ist besonders nützlich, wenn Sie die Funktionalität vollständig ersetzen.

Ein paar Beispiele:

Beispiel 1: Die Funktionalität bleibt unverändert, aber die Dateien werden mit UTF8-Kodierung und nicht mit UTF16-Kodierung (was der Standard ist) gespeichert.

Beispiel 2: Die Funktionalität bleibt unverändert, aber diese Typenliste ist jetzt der Standard (und ebenfalls markiert, warum nicht)

Beispiel 3: Die Funktionalität bleibt unverändert, aber es gibt eine Fußzeile am Ende der Liste, die anzeigt, welche Version von IsoBuster verwendet wurde

Beispiel 4: Völlig neue Funktionalität, mit neuem Namen usw.

Beispiel 5: Diese Liste wurde vollständig entfernt

REGEDIT4

[HKEY_CURRENT_USER\Software\Smart Projects\IsoBuster]

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

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

"EmdeddedFileList3"="<%EMBEDDED>{%FOOTER}<%BR>Created with <%APP> <%VERS>"

"EmdeddedFileList4"="{'My new list'}{%UTF8}{%GMT}{%STREAMS}<%LBA>;<%NAME>;<%TOTSIZE>;<%TIME>"

"EmdeddedFileList5"="<%INVISIBLE>"