Commit Graph
336 Commits
Author SHA1 Message Date
Mike Auty 2dba1bbddd Update wording to clarify the different between package version and interface version. 2016-11-04 17:56:58 +00:00
Mike Auty 28fdbbe348 Refactor the pdb names, to make the class more generic. 2016-11-03 00:53:08 +00:00
Mike Auty df2172754c Refactor the pdbscanning code so it doesn't sneak into the library accidentally. 2016-11-01 23:32:12 +00:00
Mike Auty d6039fb899 Initial port of npetroni's pdbscanner (with bugfix for multiple RDRS entries in a single scan chunk). 2016-11-01 02:06:08 +00:00
Mike Auty d57733d530 Add in support for format versioning. 2016-11-01 01:33:44 +00:00
Mike Auty dc375024b2 Set the version back, given we're early enough to do so. 2016-11-01 00:41:20 +00:00
Mike Auty 667014a1fd Attempt to standardize error message display. 2016-10-30 17:51:45 +00:00
Mike Auty f771de3703 Tidy up error messages. 2016-10-30 17:07:48 +00:00
Mike Auty d1b58143fe Add in UnresolvedTemplate type.
This template type allows objects that have not been able to be resolved
to exist within the symbol system.  It emits a debug message on creation
so that intermediate format developers can identify potential issues,
but does not raise an exception so as to allow partial tables to be
used.

If the UnresolvedTemplate is called (to create an object) before the
symbol has been added to the symbolspace, it will fail with a
SymbolError (as thrown by the individual SymbolTable).  For this reason,
the class has been made private to the SymbolSpace class to prevent
unexpected use.
2016-10-30 16:54:12 +00:00
Mike Auty 287baeb03a Add in rudimentary symbol support to the intermediate format. 2016-10-26 01:49:52 +01:00
Mike Auty 6f1bdcb6cb Refactor symbol.offset to symbol.address. 2016-10-26 01:42:37 +01:00
Mike Auty 6b405383c4 Refactor targets to subtypes. 2016-10-26 01:24:58 +01:00
Mike Auty 50f5a5ddb7 Fix up broken vtypes that looks like it might never have worked. 2016-10-26 01:16:25 +01:00
Mike Auty 5f0ceff4d2 Fix up the broken vtypes conversion by translating between the names. 2016-10-26 01:16:07 +01:00
Mike Auty 0b447b6958 Initial implementation of the Intermediate Format, breaks the vtypes format and needs a lot of tidying. 2016-10-26 01:09:29 +01:00
Mike Auty d232be2f6e Try to update the generic dtb finder to rule out false positives. 2016-10-01 22:13:42 +01:00
Mike Auty 1a83470993 Convert dtbfinder to a standalone app.
This is in development so that it's clearly not production code
(and should not expect to be supported as such).
2016-09-25 19:33:04 +01:00
Mike Auty 824ad5b143 Add in the LimeStacker, and fix the lack of appropriate information on LimeLayer creation. 2016-08-26 08:35:09 +01:00
Mike Auty 37dcbb88b0 Rework lime to use the new layer constructor, and factor out the header check. 2016-08-26 08:30:22 +01:00
Mike Auty fbe3682592 Allow stack functions to return None as a failure response. 2016-08-26 08:29:45 +01:00
Mike Auty 32bdeafa8a Improve the stacker to append the generated stack configuration into the original context. 2016-08-24 01:31:45 +01:00
Mike Auty 721d5ade3f Give the LowestLayer a proper name in the interim configs, and ensure it's in the stack. 2016-08-24 01:30:32 +01:00
Mike Auty 04b760ee3e Increase the priority so this is always run first, and we're going to use the requirement variable. 2016-08-24 01:29:53 +01:00
Mike Auty 9959697ba5 Move where the rescursion into TranslationLayers happens. 2016-08-24 01:29:11 +01:00
Mike Auty f3bc1d30b3 Refactor the build_configuration in Layers so that even data layers get their requirements populated. 2016-08-24 01:14:34 +01:00
Mike Auty 4d7701be66 Fix the config printer to sort the values. 2016-08-24 01:13:38 +01:00
Mike Auty 6b47b992a7 Ensure splice requirement perpetuates down the HierarchicalDict. 2016-08-24 01:13:20 +01:00
Mike Auty 341ae950b8 Ensure configurations do not include any generated values (ie TranslationLayer/SymbolLayer names) 2016-08-24 01:12:43 +01:00
Mike Auty 01616af655 Remove comment, it's already been converted. 2016-08-24 01:11:46 +01:00
Mike Auty 546bca1893 Rename the IntelHelper to make it a little more accurate. 2016-08-22 02:28:20 +01:00
Mike Auty 3a07d6810b Add in a reminder for additional work required. 2016-08-22 02:27:13 +01:00
Mike Auty 3dc161f9b4 Rework Translation Layers to tie more closely to configurations
This change is quite signficant, and requires that TranslationLayers
get all additional parameters that they need through their requirements.

These are now automatically enumerated and populated on object
construction based on the requirements, so should not require lots of
repetitive filling out of fields.

It does come with the downside that TranslationLayers can only be
contructed with a context (and appropiate config), but TLs in particular
always require a context (to contain the base layer) and blank configs
can be constructed relatively easily (convenience functions can be added
if necessary).

This allows configuration trees to be built up, and their configs
spliced into an existing config (as if it were being loaded from a
file).

Not all ConstructableRequirements use this method, since SymbolTables
(for example) do not have access to the context or config_path in order
to get to any parameters stored in the context's config.  They therefore
are still passed their requirement values as __init__ parameters
instead.
2016-08-22 02:20:10 +01:00
Mike Auty d3e63fbc1a Rename update_configuration to build_configuration and return a standalone config. 2016-08-22 02:18:23 +01:00
Mike Auty a1b9be74c7 Refactor several configuration/requirement structures to avoid import loops. 2016-08-22 02:15:54 +01:00
Mike Auty eb5e3f69de Ensure we're not importing sub-imports from something else. 2016-08-22 02:01:31 +01:00
Mike Auty c5139ba568 Stop exposing the config_path for now, and fix the version that's passed in the construction phase. 2016-08-22 00:36:58 +01:00
Mike Auty f48ee5ff33 Add in the actual stacking automagic. 2016-08-22 00:06:04 +01:00
Mike Auty 05d3da602f Remove splice as too dangerous (and hopefully unnecessary). 2016-08-22 00:05:05 +01:00
Mike Auty 7648c94083 Add in the intial works at a stacking plugin to emulate volatility 2 address space stacking. 2016-08-22 00:00:21 +01:00
Mike Auty dc16d93b77 Alter the config.path_join function to remove empty sections. 2016-08-21 21:47:45 +01:00
Mike Auty e54505701f Refactor Memory into an interface. 2016-08-21 21:26:21 +01:00
Mike Auty 386e8a34c7 Minor clean-up. 2016-08-21 21:23:29 +01:00
Mike Auty f0cf128bdd Add in the self-referential tests to the standalone component of the windows automagic module. 2016-08-20 16:55:32 +01:00
Mike Auty c38d650819 Add in generic self-referential tests. 2016-08-20 16:54:04 +01:00
Mike Auty 77f295f0a4 Calculate the pointer size, rather than taking it as an argument. 2016-08-20 16:53:36 +01:00
Mike Auty 2467917431 Fix up DTB Finder which was broken in commit eccfb1c2. 5:S 2016-08-20 14:16:02 +01:00
Mike Auty 2bd12b834f Fix minor breakage from the previous reordering of parameters. 2016-08-17 23:25:08 +01:00
Mike Auty 6712d5dee1 Update the automagic uses to ensure a consistent ordering of the arguments. 2016-08-17 20:38:18 +01:00
Mike Auty 0fd0fa0d55 Fix up the comment to match the acceptance of returning objects other than just offsets. 2016-08-17 20:05:23 +01:00
Mike Auty 462295fc4b Ensure lime is properly imported, so that its classes get picked up by the plugin system. 2016-08-16 10:55:27 +01:00