Commit Graph
103 Commits
Author SHA1 Message Date
Mike Auty f0a13c902e Make changes based on the view (mostly name clarification). 2019-07-30 22:14:19 +01:00
Mike Auty 398c583432 Ensure failed downloads are reported. 2019-07-30 22:14:19 +01:00
Mike Auty 6fc295410f Support progress callbacks and improve pdb downloading. 2019-07-30 22:14:19 +01:00
Mike Auty 3bb113b0a7 Improve documentation and integration. 2019-07-30 22:14:19 +01:00
Mike Auty 272224a1b0 Refactor all references to Context.memory to Context.layers. 2019-07-07 17:42:51 +01:00
Mike Auty 4cfde031f6 Additional typing fixes. 2019-05-11 22:57:06 +01:00
Mike Auty a7160dd6b6 Move the PDB downloading code and test for file writability. 2019-04-27 21:06:25 +01:00
Mike Auty 7c16c403d5 Ensure we delete the temorary file even if things go wrong. 2019-04-23 22:43:16 +01:00
Mike Auty 9350f7b88a Don't forget to cleanup. 2019-04-23 00:32:29 +01:00
Mike Auty ac282d01fb Add in initial support at automatic downloading. 2019-04-23 00:16:19 +01:00
Mike Auty 4e8c8a7232 Fix issues with SymbolRequirement refactoring. 2019-02-11 22:30:22 +00:00
Mike Auty f898dca296 Refactor SymbolRequirement to SymbolTableRequirement for clarity. 2019-02-06 21:26:32 +00:00
Mike Auty c64ed6a8dd Remove validity checking in favour of static-type checking.
This removes the assertions that checked plugin devs didn't do anything
overly bad in favour of using mypy to ensure appropriate type-checking.

It also moves the ProgressCallback typing information to constants in
order to avoid circular imports (since constants doesn't import
anything).
2019-01-20 02:35:49 +00:00
Mike Auty b13fcb186c Improve typing issues. 2019-01-03 01:13:53 +00:00
Mike Auty 19f908b075 Rejig pdbscan to find potential offsets then check them.
Originally we found physical offsets for pdbs that matched,
then found potential offsets and tested them against each other.

Now, we find the potential offsets and then look for pdbs at that offset
(technically within a 4Mb block after the start).  The scanning is quick
(probably quicker than scanning the whole physical space) and should
catch most pdbs unless they're splayed out in virtual memory.
2019-01-01 01:14:34 +00:00
Mike Auty fdc6efc4ad Add in the LICENSE and the README. 2018-12-19 23:55:03 +00:00
Mike Auty e65a00894a Minor style tweaks and mass changes across the codebase because of it. 2018-12-17 12:46:14 +00:00
Mike Auty b61ac3bd47 Many more typing fixes. 2018-12-17 01:17:06 +00:00
Mike Auty 19572b6e1e Reformat all python files using yapf with custom volatility style. 2018-12-16 16:50:17 +00:00
Mike Auty 9824538bd9 Numerous pycharm warnings resolved
This includes:

* Better ways of checking empty lists
* Not shadowing builtin functions like filter
* Preventing invalid slash warnings by marking strings as regexps
* Removing unnecessary brackets
* Lowercase variable names
* Adding/updating parameters in docstrings
* Removing unused code (lines not chunks)
* Change in not a member tests
* Changing some methods to static
* Shorting range membership checks
* Missing parameters
* Make some exception handlers more specific
* Don't define a lambda to a variable
* A few more instance checks to help type checkers
2018-12-16 13:21:06 +00:00
Mike Auty 29d41470a4 Mass reformat of typing imports
Relented on the strict import of direct objects/classes for the typing
module only.  Typing module components can be directly imported because
it makes the code really painful to read and write otherwise.

This is still in-line with the python style guide adopted from Google at
http://google.github.io/styleguide/pyguide.html section 2.2.
2018-12-16 13:04:22 +00:00
Mike Auty 341b9b8f9e Add in initial changes for scanner sections. 2018-12-07 01:47:16 +00:00
Mike Auty 001d53e768 Rework some code to help with typing. 2018-11-01 11:17:15 +00:00
Mike Auty e3e1c4e00b Initial commit of pyinstaller spec. Some changes to path handling to help. 2018-10-30 23:56:34 +00:00
Mike Auty f76aa66805 Reduce the risk of scanning the entire virtual address space, given we've already found potential kernels. 2018-10-26 22:39:36 +01:00
Mike Auty e9bad27793 Add in kdbg_offset method for pdbscan, and make the module_offset the third choice. 2018-10-26 22:28:09 +01:00
Mike Auty 68a4bbf26c Modularize pdb finding code. 2018-10-26 00:47:01 +01:00
Mike Auty d799d4edd8 Add additional typing information. 2018-10-11 16:41:59 +01:00
Mike Auty de3bfad135 Replace 'raise StopIteration' with a blank 'return', since changes in python-3.7 change StopIeration to a RuntimeError. 2018-09-28 12:44:19 +01:00
Mike Auty 00a118a06a Reduce return results from find_requirements. 2018-09-23 22:24:44 +01:00
Mike Auty 190ffaf28b Refactor where certain types of requirement live (given they're more concrete than interface). 2018-09-20 16:14:57 +01:00
Mike Auty 5791cfaab7 Stop overriding the builtin filter method, and ensure suitable parameter names. 2018-08-30 11:41:19 +01:00
Mike Auty b1d46f843b Convert documentation to napoleon/Google format docstrings. 2018-08-05 15:52:12 +01:00
Mike Auty eb08fb9e96 Convert the pdb scanner to use the kernel module names constants. 2018-08-04 12:34:18 +01:00
Mike Auty 113c23a66d Last of the typing fix-ups. 2018-06-04 23:55:38 +01:00
Mike Auty a07691b04f Ensure scanners don't return duplicates in the overlap. 2018-05-13 20:55:54 +01:00
Mike Auty 623180ddbd Make many typing fixes, based on mypy-0.590. 2018-04-22 20:45:59 +01:00
Mike Auty f3b6b5311f Fix up a couple extra typing issues, improving code quality. 2018-02-10 22:51:56 +00:00
Mike Auty 970cfc3cd8 Fix up pdbscan to avoid running if not needed. 2018-02-10 22:44:44 +00:00
Mike Auty 152dc9a210 Error check for when we can't find the file_symbol_url. 2018-02-07 19:56:02 +00:00
Mike Auty f40fae197d Convert to python3.5 syntax (no local type-annotations). 2017-12-13 20:48:52 +00:00
Mike Auty 2cc456e847 Finish off the automagic directory type annotations. 2017-12-13 20:48:52 +00:00
Mike Auty d7d13eb19c Add type annotations to most of the automagic files. 2017-12-13 20:48:52 +00:00
Mike Auty 671f65ed56 Centralize the ISF locating code.
This might benefit from a recache of the linux banners, although it
should continue to work no recache is performed.

We're now in a position to add support for loading symbols directly from
zip files by altering the ResourceAccessor and adding code to the
symbol finder.
2017-11-05 15:18:20 +00:00
Mike Auty 01043b9f3e Rework isf_filename to isf_url since we can load it from a remote location if required. 2017-11-04 15:47:52 +00:00
Mike Auty a008686c20 Reduce the logging level of the Pdbscan automagic. 2017-08-10 23:58:34 +01:00
Mike Auty b7c8c8a058 Improve the docstrings for automagic. 2017-07-29 12:53:35 +01:00
Mike Auty 0b6e50daba Convert pdbscanner to a generator. 2017-07-20 17:47:21 +01:00
Mike Auty b8fe2a96be Avoid a variable-reuse issue. 2017-07-20 11:58:16 +01:00
Mike Auty f8767af1b8 Catch the most general InvalidAddressException in case it's thrown by a lower layer. 2017-07-20 00:58:07 +01:00