Commit Graph
443 Commits
Author SHA1 Message Date
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