Closed GoogleCodeExporter closed 9 years ago
Hiya Carl!
Yes, the outfd format has been a point of contention since it was first decided
upon. I don't think that any changes will be made to the current system since
the table_* methods successfully support most of the plugins and basically we
can get by for now with those.
There have been several ideas thrown around for Volatility 3 and we need to get
the core of that stabilized before we get toward the outer interfaces (the ones
plugin developers will need to work with most). Currently the idea is to have
a single structure, effectively a tree with columns, which can then easily be
turned into a table by simply not having any children. The plugin's main body
would produce the tree and then generic printers (which could be overridden per
plugin) would then render the standard tree format. Dealing with particularly
unusual output will still need thinking about, perhaps some way of indicating
the data isn't normal and therefore falling back to rendering to console?
Anyway, ideas around that area would be much appreciated!
So I'd suggest not putting much effort into coding this until the core team
manages to present a solution they can all agree on, and then during the
testing phase for that suggest improvements or make additions, etc. Hopefully
it won't be too far away, but we can't put a date on it yet I'm afraid...
Original comment by mike.auty@gmail.com
on 26 Mar 2013 at 9:05
Original comment by mike.auty@gmail.com
on 26 Mar 2013 at 9:09
Looking over a few of the plugins that use render_dot, it's clear that the
output generated by these methods is often based on data structures that differ
to the underlying render_text ones (e.g. see the malware.svcscan plugin).
So, if the existing render_* methods were to be based on a pretty printer
(rather than using outfd writes), we'd probably want to spit them into a
render_X and template_X methods? For example, with malware.svcscan, render_dot
would have to be split into a render_dot (based on a pretty printer) and
template_dot (to produce the actual dot output).
Original comment by carl.pulley
on 26 Mar 2013 at 9:16
For information purposes, I've attached some prototype plugin code that
outlines the idea that I originally had in mind.
I've focused on using IPython's lib.pretty to (partially) reimplement the
render_text and render_dot methods for malware.threads and malware.svcscan. To
see how the code might be hooked for scraping Python data, I've also
implemented a render_python method.
Hopefully, the code will be of some use?
Original comment by carl.pulley
on 28 Mar 2013 at 10:28
Attachments:
I couldn't help feeling that the ipython.py code felt unsatisfactory, so here's
another coding experiment.
This time I've embraced a Python templating library (Mako) and then
experimented with various html/xml -> XXX format translations.
If nothing else, it shows the other end of the scale here.
Original comment by carl.pulley
on 5 Apr 2013 at 9:30
Attachments:
Original comment by michael.hale@gmail.com
on 7 Mar 2014 at 9:22
Original issue reported on code.google.com by
carl.pulley
on 26 Mar 2013 at 3:11