A software to show ...
 
Notifications
Clear all

A software to show in a tree the FTK Imager filelists?

28 Posts
8 Users
0 Likes
3,824 Views
(@francesco)
Posts: 79
Trusted Member
Topic starter
 

Personally (but this is of course only my own "queer" stance on it) the use of .Net is in itself a show-stopper, though ( .

Because of portability or because of performance? If I used Java I'm pretty sure that the UI performance would be much worse and if I used C++ I wouldn't even know where to start to find controls flexible enough with that amount of data (a Linux or OS X filelist can be hundreds of megabytes big and that's entries in the orders of millions).

 
Posted : 11/01/2014 10:35 pm
jaclaz
(@jaclaz)
Posts: 5133
Illustrious Member
 

Because of portability or because of performance?

Because of portability (of course if the idea is to provide it to "third parties" or customers).
I don't think that TreeView was invented together with .Net wink , on the other hand if you are talking of hundreds of megabytes of data and millions entries, than .csv is probably not the "best" choice as a "database".

I don't know if it can suite this task, but this might do
http//www.codeproject.com/Articles/20182/The-Ultimate-Toolbox-Home-Page

jaclaz

 
Posted : 11/01/2014 11:59 pm
(@francesco)
Posts: 79
Trusted Member
Topic starter
 

Because of portability or because of performance?

Because of portability (of course if the idea is to provide it to "third parties" or customers).

I assume you meant portability across Windows systems since you suggested that nice treeview library in your previous post, however I think it's very hard to find a Windows install where a .NET framework isn't installed, either installed by the computer manufacturer software or third party (especially printing/scanning) software. Targeting 3.5 would be a safe bet to cover almost every Windows install.

I don't think that TreeView was invented together with .Net wink,

Certainly not, but a treeview that supports columns and virtual mode would require a third party library in a native win32 application because the native Windows control has only the most basic features.

on the other hand if you are talking of hundreds of megabytes of data and millions entries, than .csv is probably not the "best" choice as a "database".

That's unfortunately what FTK Imager creates, not much to do about that. At least it's very easy to process (TAB is the separator and there are no double quotes).

I don't know if it can suite this task, but this might do
http//www.codeproject.com/Articles/20182/The-Ultimate-Toolbox-Home-Page

I gave a look but unfortunately the provided TreeView (COXTreeCtrl) doesn't seem to support virtual mode, it does have columns though. Virtual mode would be pretty essential if I want to show the associated file icons so I think we could rule out writing a native app due to the difficulty of finding the appropriate controls.

I started writing a native version and ported all the filelist reading however I'm still puzzled about the interface. Should I use a single Window where you load everything in the same tree like FTK Imager does or multiple tabbed windows (MDI), one for each filelist to allow comparing the lists?

 
Posted : 12/01/2014 3:37 pm
jaclaz
(@jaclaz)
Posts: 5133
Illustrious Member
 

As I see it (but as said it's just my personal opinion) .Net=EVIL, but of course if it is not possible (or not convenient) to avoid using it, it is fine as well ), but it is - still IMHO - the worst possible choice (if a choice is available).

As a generic (again personal) opinion anything that has "dual panes" (not necessarily MDI) is useful when comparing file lists, think of *any* OFM
http//www.softpanorama.org/OFM/index.shtml

I am not sure to have fully understood the .csv (actually .tsv) file issue, I mean, does FTK imager actually produce plain text Tab delimited files in the size of hundreds of megabytes? 😯

A Java based solution will most probably be slowish (and possibly cause another series of issues with the exact Java runtime needed/available), OT, but not much, one of the few programs that I know of that can actually manage very large "plain" databases is actually written in Java (and is slowish)
http//record-editor.sourceforge.net/Record02.htm

I'll have a look if I can find a suitable "native" component.

I was also (laterally 😯 ) thinking about *something else*, like mixing (liberally) these two projects
http//code.google.com/p/mssqlfs/
http//sourceforge.net/projects/plisgo/
but of course it is not worth it for this single "quick and dirty" app you devised.

jaclaz

 
Posted : 12/01/2014 6:33 pm
(@francesco)
Posts: 79
Trusted Member
Topic starter
 

As I see it (but as said it's just my personal opinion) .Net=EVIL, but of course if it is not possible (or not convenient) to avoid using it, it is fine as well ), but it is - still IMHO - the worst possible choice (if a choice is available).

I'm pretty happy with .NET because of how easy it is to customize controls or to find many ready third-party ones. I wrote extensive .NET libraries for reading/writing binary data that like in this case would become a necessity since the built-in I/O functions available (same for those in Java or C++) are way too slow at handling text files reading a filelist with 700k entries (200mb) on my machine takes more than one minute (!) with the built-in functions while just a couple of seconds with custom code with proper buffering.

As a generic (again personal) opinion anything that has "dual panes" (not necessarily MDI) is useful when comparing file lists, think of *any* OFM
http//www.softpanorama.org/OFM/index.shtml

I started writing the project in C++, with a listview and a tree side-panel on the left, very similar to the FTK Imager interface. With MDI you can put the internal windows side by side for comparison or you can use two program instances for the same result. I used a custom library (EZUTF) for dealing with the text-files due to the built-in functions taking minutes, I almost finished the code to read all the entries then the rest should be hopefully easy.

I am not sure to have fully understood the .csv (actually .tsv) file issue, I mean, does FTK imager actually produce plain text Tab delimited files in the size of hundreds of megabytes? 😯

Yes, when you create an image with FTK and check the option to create a list of the files it creates those huge text files. There doesn't seem to be an option to export in any other format.

A Java based solution will most probably be slowish (and possibly cause another series of issues with the exact Java runtime needed/available), OT, but not much, one of the few programs that I know of that can actually manage very large "plain" databases is actually written in Java (and is slowish)
http//record-editor.sourceforge.net/Record02.htm

I'll have a look if I can find a suitable "native" component.

I was also (laterally 😯 ) thinking about *something else*, like mixing (liberally) these two projects
http//code.google.com/p/mssqlfs/
http//sourceforge.net/projects/plisgo/
but of course it is not worth it for this single "quick and dirty" app you devised.

Maybe there won't be need for a database, I think parsing all the data could be done in an acceptable time if I write the code for parsing all the strings. The code could also be ported on one of those userfs filesystem drivers for Windows and have the structure shown in explorer but it wouldn't have much use since you couldn't interact with any of the files.

 
Posted : 13/01/2014 8:28 pm
(@rarosalion)
Posts: 28
Eminent Member
 

I know it's not exactly what you were after (it will only read from an existing directory, not from the FTK Imager CSV files), but I really like using Snap2HTML. It's easy to create really nice looking (searchable) directory trees with an HTML template.

 
Posted : 14/01/2014 3:27 am
(@chad131)
Posts: 63
Trusted Member
 

Have you considered using the FTK Imager file listing to actually recreate the file system? I've done this in the past.

Just loop through the csv file and create 0 byte files retaining the directory structure and file names/extensions. If you want, you can even set the MAC times of the files so they match the csv.

It's not as clean as a separate app that will read the csv, but it does allow someone to browse around a file/directory structure and it takes virtually no space.

 
Posted : 14/01/2014 11:18 pm
jaclaz
(@jaclaz)
Posts: 5133
Illustrious Member
 

Have you considered using the FTK Imager file listing to actually recreate the file system? I've done this in the past.

Just loop through the csv file and create 0 byte files retaining the directory structure and file names/extensions. If you want, you can even set the MAC times of the files so they match the csv.

It's not as clean as a separate app that will read the csv, but it does allow someone to browse around a file/directory structure and it takes virtually no space.

This would be an interesting approach, but how will the user be able to view (besides the directory structure) the actual data in the "source" .csv.
IF ? the data in the .csv is within the limits of the available space, see
http//www.forensicfocus.com/Forums/viewtopic/t=10403/
one could use a NTFS filesystem and store the data in the same $MFT entry, i.e. using 1024 bytes per record, and if it would be possible to make a NTFS filesystem with the $MFT starting on cluster 2 (16 sectors before for the $boot), as I have seen a few examples recently (but without a definite answer on what OS/tool can make them) we could have a volume which is made of just the NTFS filesystem "standard" $-prefixed files.
As a matter of fact a filesystem is a database and viceversa, in theory one could make a "filesystem driver" to mount directly the .csv as if it was a volume, as Francesco mentioned before.

jaclaz

 
Posted : 15/01/2014 12:01 am
jaclaz
(@jaclaz)
Posts: 5133
Illustrious Member
 

NOT really useful/connected with the topic 😯 , but I happened to find casually this thingy here
http//www.primitivezone.com/primitive-disk-indexer.html

that seems like nice (creating "disk contents lists" browsable in an Explorer like interface) using a .pdi file (which is nothing but a .mdb JET database file).
It could maybe of inspiration.

jaclaz

 
Posted : 05/03/2014 12:55 am
(@francesco)
Posts: 79
Trusted Member
Topic starter
 

NOT really useful/connected with the topic 😯 , but I happened to find casually this thingy here
http//www.primitivezone.com/primitive-disk-indexer.html

that seems like nice (creating "disk contents lists" browsable in an Explorer like interface) using a .pdi file (which is nothing but a .mdb JET database file).
It could maybe of inspiration.

jaclaz

Whoops, sorry for the lack of updates, the last month has been a mess. I had the program working but it still needs folder icons, localization removal, some error handling and a MDI file browser template from an older version of visual studio (the executable is currently 4Mb if I compile the latest C++ runtime statically but I use none of the new MFC features).

If anybody needs it already just PM me.

 
Posted : 07/03/2014 2:11 am
Page 2 / 3
Share: