Mike Auty
bbabf4db0e
Add in a heuristic for finding the correct DTB on recent Win10.
...
This removes again the single_page_map_offset configuration value,
and requires that a full/correct config be used to supply a manual DTB
value.
The expectation is that the single_page_map_offset feature be
re-introduced but override *all* scanning (so the scanning doesn't take
place even if the stacking does).
2016-12-22 15:44:07 +00:00
Mike Auty
70314386c8
Fix a rather critical issue with the end condition for a scanned range (and reduce the overlap if it's unnecessarily large).
2016-12-22 15:41:00 +00:00
Mike Auty
d669b57546
Rewrite our fallback virtual kernel offset algorithm.
2016-12-21 16:54:35 +00:00
Mike Auty
aad6aa9b4d
Rewrite the intel scanning engine (and fix up the internal _translate function to include the mapped layer).
2016-12-21 16:53:52 +00:00
Mike Auty
9ca001df8b
Allow start/end positions on the pdb scanning.
2016-12-21 02:28:03 +00:00
Mike Auty
591d9eba27
Add in better bounds checking for the scan call.
2016-12-21 02:20:47 +00:00
Mike Auty
56388fc903
Fix up the incorrect scanning boundaries.
2016-12-21 01:45:44 +00:00
Mike Auty
c6d5eef2f9
Fix up a documentation warning.
2016-12-20 09:00:17 +00:00
Mike Auty
7a1fcec1b5
Change subtype to base_type to match the __init__ parameter name.
2016-12-20 08:31:01 +00:00
Mike Auty
1e6911b753
Create appropriate VolTemplateProxy classes for BitField and Enumeration.
2016-12-20 08:29:41 +00:00
Mike Auty
a7d3a95ad0
Fix BitFields (and Enumerations) to accept only Integer basetypes and derive from them properly.
2016-12-20 08:25:55 +00:00
Mike Auty
0f548e864c
Add in comment in case of mutability trouble in the Struct TemplateProxy.
2016-12-18 20:52:38 +00:00
Mike Auty
2323e15ec3
Clarify in the documentation that these updates are transient.
2016-12-18 19:38:22 +00:00
Mike Auty
be075939d2
Remove flags as a fully-fledged object until it's been discussed
2016-12-18 19:38:05 +00:00
Mike Auty
a8b4db3ee3
Don't forget to also clone during intermediate format native creation.
2016-12-18 19:25:27 +00:00
Mike Auty
09ee0e6258
Fix fairly deep flaw where resolved templates could be modified by casting or creating an object.
2016-12-18 19:21:27 +00:00
Mike Auty
1754f3bc85
Attempt to fix up any possible re-encoding issues the str() call in the renderer might bring.
2016-12-18 16:58:58 +00:00
Mike Auty
190bcd7bf1
Include an initial flags object.
...
This might get removed, given it could be achieve with a wrapper rather
than a fully defined Object.
2016-12-18 16:29:19 +00:00
Mike Auty
54678823f8
Refactor BitField subtype to base_type to match enums (and fix a minor enum typo too).
2016-12-18 16:12:08 +00:00
Mike Auty
45d37bb961
Remove misleading TODO.
2016-12-18 15:52:03 +00:00
Mike Auty
efad3362db
Reset the string encoding changes, since we were doing it right the first time.
2016-12-18 15:51:27 +00:00
Mike Auty
6f1a929f88
Refactor the location of windows extension classes.
2016-12-18 15:38:46 +00:00
Mike Auty
e4905febf9
Ensure all objects can be inherited from.
2016-12-18 15:38:11 +00:00
Mike Auty
6102054bb6
Enable string encoding and emphasize that max_length applies to bytes in memory not to number of characters in the string.
2016-12-18 15:37:05 +00:00
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