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