-
Notifications
You must be signed in to change notification settings - Fork 229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Carver and file signature for Shareaza download control files (.sd) #1816
Comments
Awesome work @felipecampanini and @tc-wleite! I don't remember well if it is Shareaza behavior, but in the past there were some download/sharing files app that used to put download info at the end of the file being downloaded and, at the end, the file used to be truncated to its size, so the download info used to be left in the file slack. |
@lfcnassif, a question about the current carving implementation for types that have only the header definition and a max length (i.e. no footer and no length information inside the file).
Two entries will be carved, as expected, but the first one will contain the beginning of the second one, which I don't think would be the best guess. I changed (locally to test, didn't commit) this behavior (in
If I didn't miss anything, currently only ARES @lfcnassif, is there a reason to keep only the first behavior? |
Hi @tc-wleite. Honestly I don't remember well if there was a specific reason, I implemented the carving algorithm years ago, I think the idea was to carve as much info as possible, not sure... Not only ordinary containers like ZIP can have multiple headers of embedded items, but non common "containers" could also have, for instance, JPEG usually has thumbnails with multiple resolutions into Exif data. I think above may also happen with files without a clear footer. Of course, this is file type specific and the new proposed approach seems useful. This would be a sensible change, ideally needing to be tested against a reasonable set of images... Since I think the current behavior can be useful depending on file type and the change may cause some regression, my vote is to have a configurable parameter. A somewhat related old idea was to have a configurable parameter to recover files which have a footer in the configuration even if the footer wasn't found in the max range specified. This would result in more carved files, can be good, but also in more garbage, of course bad... |
Just to be clear, my opinion can be wrong, just testing would tell us what is the best default behavior, but a configurable parameter seems interesting... |
I think MOV is from QuickTime family and is handled by the same carver that handles MP4, 3GP and QT movies. |
Sorry, MOV uses a custom carver indeed. |
I agree that the parameter would leave things more flexible and clearer. |
Fine to me! Or maybe |
Thinking better, possibly current FLV (and Shareaza) carving are merging 2 different files starting at the first header... For FLV this should not be hard to detect, since the video content, if playable, would change abruptly. Maybe we should run tests to evaluate this... |
Actually it would be easy, the number of FLV files smaller than max size would increase. Today we can already get some, if parent item ends before reaching max size. |
@lfcnassif, let me explain why I considered this other behavior (
EDIT: Sorry, I repeated the test with more attention and in fact what happens is that 3 items were created, like |
Thanks @tc-wleite I got it. I realized different FLV files could be merged together (as you explained before).
This is odd, because we have a rule to skip carving on carved files: IPED/iped-engine/src/main/java/iped/engine/task/carver/BaseCarveTask.java Lines 139 to 145 in eee2818
|
Hmmm, I thought we have that, but didn't try to find in the code to check. |
I am sorry @lfcnassif , I repeated the test again (without stopOnNextHeader) and carving from carved items didn't happen. |
Don't worry @tc-wleite, thanks for testing again. After you finish the |
ShareazaDownloadParser First version
While working on a CSAM case with very little concrete evidence, I used an external carver and a parser written by @felipecampanini, who is working on another similar case, and found very important Shareaza download control files (SDL).
A really great "byte-level" analysis by @felipecampanini!
These SDL files have information about ongoing Shareaza downloads.
In cases that the "main" Shareaza library files (like "Liibrary1.dat", already parsed by IPED) were lost, these SDLs can be very important.
Another observation is that these SDL files are "one per download file", so they are small, while "Library1.dat" contains all the library entries in a single file.
In my case, all SDLs were recovered from file slacks. The suspect wiped the unallocated space, but the tool he used didn't seem to clean the slacks.
This issue is about the carver of these "Shareaza Downloads".
I believe @felipecampanini is still working on the standalone parser we are using for now.
When it is finalized, we can create another issue to implement an IPED parser.
The text was updated successfully, but these errors were encountered: