Commit Graph
419 Commits
Author SHA1 Message Date
Mike Auty 65ef2927a3 Refactor the enumeration_choices code into the existing weak_resolve code. 2016-12-18 02:53:07 +00:00
Mike Auty b2701d7ba6 Update inaccurate error message. 2016-12-18 02:48:46 +00:00
Mike Auty cf4ac3a7f6 Allow enumeration dictionaries to be accessed through the SymbolSpace directly. 2016-12-18 02:48:23 +00:00
Mike Auty 6b973f1538 Expose VolTemplateProxy.vol values in the Proxy (to allow for enumeration access in a template). 2016-12-18 02:19:46 +00:00
Mike Auty fbb66e6603 Support inverse caching of enumerations. 2016-12-18 02:10:54 +00:00
Mike Auty 4ac682fc42 Rename Enumeration subtype to base_type, since it should always be a primitive. 2016-12-18 02:07:11 +00:00
Mike Auty bd3762a81c Improve exception returns in TemplateProxy. 2016-12-18 01:52:06 +00:00
Mike Auty 5f6c9ca08a Add in support for version 2.0.0 of the JSON schema. 2016-12-17 21:03:54 +00:00
Mike Auty 8a687ef409 Ensure we include the natives in the Intermed type lists. 2016-12-16 00:26:22 +00:00
Mike Auty 884e397836 Update Enumeration objects again, hopefully correctly this time. 2016-12-15 23:04:51 +00:00
Mike Auty ac6a5a2b9a Ensure that we use a reasonable type for enumerations when constructing them without further details. 2016-12-15 23:04:23 +00:00
Mike Auty 7719aaa960 Convert the validity functions to class functions to allow them to be used in __new__ methods. 2016-12-15 23:03:48 +00:00
Mike Auty bf61357ed2 Don't forget to call super's struct_format. 2016-12-15 09:06:05 +00:00
Mike Auty de58df2363 Fix negation flip that returned entirely the wrong values for arrays. 2016-12-15 02:07:25 +00:00
Mike Auty d3f6a40d66 Change the docstrings to use name rather than entry for enumerations. 2016-12-15 02:07:03 +00:00
Mike Auty de18fe234c Add in an implementation for Enumeration for testing. 2016-12-15 02:02:30 +00:00
Mike Auty 698d1c2b4a Improve the granularity of logging. 2016-12-15 01:38:24 +00:00
Mike Auty b686c65c9e Rework array slicing to piggy-back off python's code. 2016-12-14 23:26:31 +00:00
Mike Auty 30fe381d00 Don't do work we don't have to. 2016-12-14 09:26:15 +00:00
Mike Auty 6b4e80f1e5 Take a tiny bit longer, but properly check all the kernels in case a match is hiding later in the list. 2016-12-14 01:54:50 +00:00
Mike Auty 90b024562f Rule out kernels that couldn't find a suitable MZ header. 2016-12-14 01:42:40 +00:00
Mike Auty cad0cf2d4f Improve vmware segment calculations. 2016-12-14 01:31:22 +00:00
Mike Auty 0f416b4765 Improve logging from the stacker. 2016-12-14 01:30:30 +00:00
Mike Auty eec68707bd Improve the vmware layer (not sure it's finished yet though). 2016-12-14 00:28:05 +00:00
Mike Auty 2c60747355 Minor fix, small but might as well fix it. 2016-12-14 00:27:41 +00:00
Mike Auty 2c02df125a Fix the truncation of strings
MHL kindly pointed out that the string wasn't truncating, and it turns
out I misread the struct documentation, which truncates or pads with
\x00s to ensure the appropriate length.  We now truncate to the first
null we find.
2016-12-13 20:41:09 +00:00
Mike Auty a32c7e27a9 Add in cryptic comments nearly lost during the vtypes purge. 2016-12-13 19:40:18 +00:00
Mike Auty 058346b74d Ensure IntermediateSymbols can handle cross-table references. 2016-12-13 19:32:22 +00:00
Mike Auty fa427d2a2b Add in the starts of a vmware layer and stacker. 2016-12-13 02:21:15 +00:00
Mike Auty ed716ca12a Convert SymbolTableInterfaces to descend from ConfigurableInterface
This allows SymbolTables to hold actual requirements (which
IntermedSymbolTable already did, but without pulling in the right
interface).  It means that values like kernel_virtual_offset get saved.

We still need to figure out how to allow plugins to demand optional
configuration values in other places (such as the kvo) but for now the
plugin will barf if it doesn't get it.
2016-12-12 02:08:32 +00:00
Mike Auty d43b294f36 Ensure we store all relevant config values rather than just those stores as variables. 2016-12-12 02:07:48 +00:00
Mike Auty eae84fd8e0 Ensure we only stack when needed
We shouldn't be stacking unless we're required, so now
we run after the construction phase, and run our own construction
phase is we've changed anything.
2016-12-12 02:06:54 +00:00
Mike Auty 046d1955b5 Ensure that only unfulfilled symbol requirements trigger the pdb scanner. 2016-12-12 02:04:20 +00:00
Mike Auty e2d5f51ad5 Remove old and rotten code. 2016-12-12 00:25:03 +00:00
Mike Auty 21c4e4bdef Refactor the segmented layer out of lime for use with other layers. 2016-12-11 19:13:35 +00:00
Mike Auty b9dbc80baf Improve logging of automagic actitivies. 2016-12-11 18:16:02 +00:00
Mike Auty 5d15f810e1 Tidy up the config namespace around automagic a little. 2016-12-11 13:58:17 +00:00
Mike Auty 9bb0745b83 Clean up the debug messages for pdbscanning. 2016-12-08 16:29:36 +00:00
Mike Auty 2aebb99ee6 Slightly improve the output and get rid of pointless parameters. 2016-12-08 16:24:59 +00:00
Mike Auty 8a0609e800 Add in a secondary scan to determine the kernel base in randomized kernel base systems. 2016-12-08 16:24:03 +00:00
Mike Auty 13b1126b90 Guard against no progress_callback in intel layer. 2016-12-08 16:03:22 +00:00
Mike Auty 482516d93d Rework the kvo finding code to allow for Win10 kernel base randomization. 2016-12-08 14:56:32 +00:00
Mike Auty 555f587b15 Ensure the progress value for translation layer scanning is correct. 2016-12-08 12:08:42 +00:00
Mike Auty 631ae07a26 Insert a check to use valid kernels where a pdb signature is found in multiple locations. 2016-12-08 11:55:46 +00:00
Mike Auty 183ff67699 Attach the kernel virtual offset to intel spaces. 2016-12-07 16:00:31 +00:00
Mike Auty 1f6fcd7bad Ensure that the value of pointers always fall within their layer. 2016-12-07 09:52:33 +00:00
Mike Auty 797e51608e Move the masking code into the data layer. 2016-12-07 09:50:59 +00:00
Mike Auty 6cb5d06d6d Ensure all offsets are normalized to fall within their layer's address range. 2016-12-07 00:07:57 +00:00
Mike Auty 20d0e83e1d Ensure we don't ever round down when log-ing. 2016-12-07 00:05:47 +00:00
Mike Auty 734b9a68b8 Ensure we use math.log correctly.
This is unlikely to ever happen (since we use python3)
but still just as well to implement in case something else
similar comes up.

https://www.willmcgugan.com/blog/tech/post/finding-the-first-bit-set-with-python/
2016-12-06 23:40:21 +00:00