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