Add in TODOs for future heuristic enhancements.

This commit is contained in:
Mike Auty
2016-12-24 19:45:02 +00:00
parent 6a0b0d71c0
commit d51dd2a992
2 changed files with 2 additions and 0 deletions
@@ -229,6 +229,7 @@ class KernelPDBScanner(interfaces.automagic.AutomagicInterface):
vollog.debug("Kernel base randomized, searching layer for base address offset")
# If we're here, chances are high we're in a Win10 x64 image with kernel base randomization
physical_layer = context.memory[physical_layer_name]
# TODO: On older windows, this might be \WINDOWS\system32\nt rather than \SystemRoot\system32\nt
results = physical_layer.scan(context, scanners.BytesScanner(b"\\SystemRoot\\system32\\nt"))
seen = set()
for result in results:
@@ -199,6 +199,7 @@ class WintelHelper(interfaces.automagic.AutomagicInterface, interfaces.automagic
if layer is None:
vollog.debug("Self-referential pointer not in well-known location, moving to recent windows heuristic")
# There is a very high chance that the DTB will live in this narrow segment, assuming we couldn't find it previously
# TODO: This scan takes time, it might be worth adding a progress callback to it
hits = context.memory[layer_name].scan(context, PageMapScanner([DtbSelfRef64bit()]), min_address = 0x1a0000,
max_address = 0x1f0000)
# Flatten the generator