-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Encrypted KDBG (Win 8 and later)
iMHLv2 edited this page Dec 22, 2016
·
1 revision
This page documents some of the recent changes in the Windows kernel that affect memory forensics and what you can do to handle the differences gracefully.
- The distorm3 python module is a requirement for analyzing 64-bit Windows 8/2012 (and later) raw memory images. If you're using a standalone executable, then distorm3 is already included, however if you're using Volatility from source, then you will need to install distorm3.
- Previously, the parameter to
--kdbg
was the virtual address of the KDBG structure. On 64-bit Windows 8/2012 (and later), you pass the virtual address ofKdCopyDataBlock
. Both addresses are displayed in the output of thekdbgscan
plugin.
- The KDBG is encrypted by default on all x64 Windows 8/2012 (and later)
- The KDBG signature/size changed
- The DTB signature changed
- New crash dump format (memory runs are bitmaps)
- Handle table pointers are encoded on x64
- Pool tags are different (no more protected bits for executive objects)
- VAD tree structures are
_MM_AVL_NODE
instead of_MMADDRESS_NODE
- New executive object types:
IRTimer
,WaitCompletionPacket
,DxgkSharedResource
,DxgkSharedSyncObject
- New optional object header (
_OBJECT_HEADER_AUDIT_INFO
) -
win32k.sys
PDB symbols are stripped again (affects all GUI subsystem plugins) - There's no
_HANDLE_TABLE.HandleCount
(displayed bypslist
) - There's no
_LDR_DATA_TABLE_ENTRY.LoadCount
(displayed bydlllist
) - Assembly instructions differ in
nt!KeAddSystemServiceTable
(used byssdt
) - Service record offsets changed (
svcscan
) - Offsets for undocumented networking structures changed (used by
netscan
)
Volatility Foundation
Getting Started
- FAQ
- Installation
- Linux
- Mac
- Android
- Basic Usage
- 2.6 Win Profiles
- Encrypted KDBG
- Pyinstaller Builds
- Unified Output
Command References
Development
Miscellaneous
Physical Address Spaces