Add LevelDB, IndexedDB, LocalStorage and SessionStorage#5
Conversation
|
Please let us know if there is anything we can do to move this PR forward or to ease the review process. |
If you could clone me, that'd be great. Unfortunately this is a huge PR and I simply have not gotten around to looking at it yet. Between reviewing all other PRs and working on large PRs myself, too, I'm simply stretched thin. |
Schamper
left a comment
There was a problem hiding this comment.
How you doin'? There's a lot of unnecessary patterns in here (class level type hints for no apparent reason, methods that could easily be inlined or more easily replaced by inheritance, you can take my comments on that in the earlier files as generic comments over the rest as well (it's very slow to review a large PR on GitHub).
Co-authored-by: Erik Schamper <1254028+Schamper@users.noreply.github.com>
Co-authored-by: Erik Schamper <1254028+Schamper@users.noreply.github.com>
Co-authored-by: Erik Schamper <1254028+Schamper@users.noreply.github.com>
Co-authored-by: Erik Schamper <1254028+Schamper@users.noreply.github.com>
|
I think ideally we maybe have our own version of the v8 deserialization. Since we mostly care about deserializing and not so much roundtripping, I think we could make a much more simplified version that just maps to native Python types (a little bit similar to how we deserialize Since we don't have a I probably am drastically oversimplifying this, so maybe you could give me a reality check. |
This PR adds a LevelDB storage implementation to
dissect.database.Also adds support for serialization formats building on top of LevelDB: IndexedDB, and Chromium's LocalStorage and SessionStorage. Please let us know if these formats should be structured differently in this project.
Makes use of two (pure Python and/or Rust) dependencies:
cramjam (for LevelDB Snappy decompression)and v8serialize (for IndexedDB v8 javascript object deserialization). We do not have the time or resources to port these dependencies todissect.utilordissect.*- hopefully these dependencies can be accepted.