Commit Graph
278 Commits
Author SHA1 Message Date
Mike Auty d882f93fee Move the length check, and require a non-zero length to protect is_valid. 2016-05-22 19:23:15 +01:00
Mike Auty 9faa13820a Since we're a forensics program, make sure we only read unless we know the user REALLY wants to write. 2016-05-22 19:21:24 +01:00
Mike Auty 16bed2aa94 Allow specifying a table_name for get_symbols_by_location. 2016-05-22 16:02:30 +01:00
Mike Auty e0b7f0b5f0 Add in helper functions for symbolspaces/symboltables to locate specific symbols. 2016-05-22 15:57:48 +01:00
Mike Auty fea6e0820a Convert to using a BANG variable for the symbol name delimiter.
Whilst it's easy to do now (because we don't yet use it many places)
convert the ! delimiter into a variable.
2016-05-22 15:26:31 +01:00
Mike Auty 34b81a5265 Add in Unions
Since a Union is identical to a Struct (and at the moment a struct
doesn't enforce non-overlapping members), these are identical and a
Union is a descendent of Struct.  If this ever becomes a problem there
is a filthy way to fix it, but it's really bad and will likely cause
more subtle and difficult to diagnose problems.  Stick with inheritance.
2016-05-22 12:03:46 +01:00
Mike Auty 659bfc1670 Add in Symbol class to properly represent programming symbols. 2016-05-22 11:54:44 +01:00
Mike Auty 2d23c93def Completely refactor constants and structures to symbols and types. 2016-05-22 11:51:06 +01:00
Mike Auty 7a62e74996 Refactor the translation method out of the TranslationLayer, since it's not always applicable/useful. Contemplate a rename of the TranslationLayer now it doesn't actually translate. 5;) 2016-04-10 11:54:32 +01:00
Mike Auty 8e49c66049 Ensure we don't find bogus DTBs, but do still allow non-usr-count DTBs. 2016-02-27 14:11:40 +00:00
Mike Auty 9fce3a4b1f Tidy up the tests and add a bit of error checking to the dtb finder. 2016-02-27 11:53:44 +00:00
Mike Auty b06306f884 Fix reducing the tuple mid sorting. 2016-02-27 01:50:38 +00:00
Mike Auty 445031c880 Unfix the self-referential checker. 2016-02-27 01:43:03 +00:00
Mike Auty 29e75339df Fix the self-referential checker again. 2016-02-27 01:40:01 +00:00
Mike Auty dbcb59e0e9 Fix the self-referential checker. 2016-02-27 01:38:29 +00:00
Mike Auty 8ab1dedd44 Change the output to hide the ordering data, and fix up the standalone tool a little bit. 2016-02-26 20:36:57 +00:00
Mike Auty afd28575ca Re-check constraints when building the tree, in case they change. Also comment on why we don't use that when trimming the possibilties for windows automagic. 2016-02-25 22:03:49 +00:00
Mike Auty d6cc66cb77 Add in self referential checker, should windows change what it does. 2016-02-23 10:16:27 +00:00
Mike Auty 1fd8eecebd Ensure we take into account ignored/NX bits when DTB finding. 2016-02-23 10:15:50 +00:00
Mike Auty 9dbae9b84a Update for PAE image, rather than a second intel image. This one's private though. 2016-02-22 09:18:03 +00:00
Mike Auty 61d45c2c36 Add another demonstration image with handily the same system process offset, to demonstrate selecting PAE or 32bit. 2016-02-22 01:54:53 +00:00
Mike Auty 644a028ee4 Fix up the dtbfinder output a little. 2016-02-22 01:54:19 +00:00
Mike Auty 7ba06d0448 If we've tried scanning for the DTB, and we don't find in other arches, remove them as possibilities. 2016-02-22 01:47:09 +00:00
Mike Auty 187325f74e Convert the dtbfinding code into a standalone tool and remove the dtbfinder.py. 2016-02-22 01:46:36 +00:00
Mike Auty ff11f27c75 Fix up the automagic dtb finder to visit internal tree nodes, and to set the right variable! 2016-02-22 01:05:50 +00:00
Mike Auty 0298df3569 Convert visitors to HierarchicalVisitors, keeping a stack of children's results for the dependency resolver. 2016-02-22 01:05:16 +00:00
Mike Auty ba9eb0716a Make output on requirement nodes a little more readable. 2016-02-22 01:03:41 +00:00
Mike Auty bacc8c5539 Move to a HierarchicalVisitor pattern. 2016-02-22 01:02:29 +00:00
Mike Auty a123572701 Add in debugging tools for the dependency tree. 2016-02-21 01:24:34 +00:00
Mike Auty 665ba8946b Fix a logic error in the resolver that meant it might not visit every node. 2016-02-21 01:19:42 +00:00
Mike Auty c6a3c2d6b1 Add in the automagic and allow mid-deptree resolution (without trying to re-fulfill already populated requirements). 2016-02-21 00:42:04 +00:00
Mike Auty 9d7e777c28 Fix up the validity class and enable short_circuiting. 2016-02-21 00:17:44 +00:00
Mike Auty 01ac22bac2 Ensure that the success or failure does not affect the ability for a visitor to change the shortcircuiting. 2016-02-20 23:35:16 +00:00
Mike Auty a9ff081da5 Fix a few bugs and re-add a visitor pattern for traversing the tree. 2016-02-20 23:01:41 +00:00
Mike Auty 71b540f6db Draft up a system to tag the configuration tree with useful information based on the context so far. 2016-02-20 21:36:12 +00:00
Mike Auty 1e8c55bfdd Remove all the visitor pattern stuff, that's likely to bloat rather than help. 2016-02-20 21:35:31 +00:00
Mike Auty ba2083fc7c Refactor the RequirementTreeNode to put it in the interfaces file. 2016-02-20 21:35:05 +00:00
Mike Auty da7774ee92 Refactor and add in a node type for multiple requirements. Lays the groundwork for the hierarchical visitor pattern. 2016-02-20 20:19:36 +00:00
Mike Auty eab75146db Document the tests a little better. 2016-02-17 09:12:17 +00:00
Mike Auty 8d27260662 Apply initial attempt at an algorithm to narrow down to the DTB to the most privileged process (the top level table with the least user-accessible subchildren). 2016-02-16 10:51:22 +00:00
Mike Auty 35e2c4a247 Add in rudimentary string support for pslist, consider changing it to user an obejct_class rather than casting. 2016-02-14 02:51:48 +00:00
Mike Auty d7aefdce28 Add a comment explaining why we don't truncate strings on \x00. 2016-02-14 02:50:37 +00:00
Mike Auty 0ef389dec9 Tidy up Bytes and String to require all the appropriate parameters. 2016-02-14 02:49:28 +00:00
Mike Auty 86526fa9ad Separate out the object_info to make debugging easier in future. 2016-02-14 01:43:28 +00:00
Mike Auty 9c1dbf88e2 Change Bytes to not require a struct_format, since we generate it from the length parameter. 2016-02-14 01:43:09 +00:00
Mike Auty 9c9183feb2 API change: Alter cast to accept object parameters rather than inheriting (which usually will be wrong). 2016-02-14 01:40:25 +00:00
Mike Auty a8828d7185 Add Strings and Bytes to the native structure code. 2016-02-13 17:18:23 +00:00
Mike Auty a1f127940d Fix up the test_rig to work with a previous API change. 2016-02-13 17:17:45 +00:00
Mike Auty 34b8671ce3 Refactor basic to extensions for windows additions. 2016-02-13 17:17:10 +00:00
Mike Auty 66e526ab66 Do all the DTB checks in one pass. 2016-02-11 20:53:46 +00:00