Today I took a look at the free physical memory acquisition tool called windd. The authors have touted windd as fully supporting acquisition of memory images on 4GB and greater machines on both 32-bit and 64-bit windows platforms. They also claimed to be the first to image Windows 7, which of course attracted my attention since FDPro has supported Windows 7 since last year. As one of the primary authors of HBGary's commercial physical memory acquisition tool FDPro, I was interested to see how windd stacked up. As I have written and maintained the commerical verison of FDPro, I had a number of difficult hurdles to overcome. I was curious to see if others had solved these challenges yet.
Specifically I was interested to see:
- Is windd acquiring all of the available physical memory on the system?
- Would a "raw format" image dump of a 64-bit vista machine load properly into HBGary's Responder?
- Should windd memory images that contain greater than 4GB of ram be considered admissible in court?
- Was windd really the first tool to support physical memory acquisition on Windows 7? (as claimed by the author)
In my evaluation I found the answer to all of these questions was "no". To be honest I wasn't completely surprised to see that many of these challenges had not yet been overcome. It has taken HBGary many, many hours of research and development in addition to a significant time investment performing rigorous QA to insure the accuracy and integrity of the RAM images acquired with FDPro. I guess this is why HBGary charges a hundred bucks for FDPro.
windd vs FDPro.exe bake-off
To evaluate windd versus FDPro I used each tool independently to acquire a "raw format" image on the same 6GB ram, Vista x64 bit machine. To start with I ran two windd images of the machine in question using the following command line options (as recommended in windd's usage):
1) win64dd.exe /m 0 /r /f c:\users\smb\desktop\WINDDx64.bin
and I also tried
2) win64dd.exe /c 2 /m 0 /r /f c:\users\smb\desktop\WINDDx642.bin
Both runs produced a set of output like this:
Finally I ran an FDPro.exe image of the same machine using the following command line:
1) FDpro.exe c:\users\smb\fdpro-x64.bin
A quick DIR of all 3 images reveals something quite troubling:
As you can see by comparing the two screens above, FDPro is the only tool that actually acquires the entire range of physical memory. It's not clear why the authors of windd decided not to capture the entire physical memory range. It's clear that windd is aware of the full range of memory in use since the accurate acquisition size is printed in the output of every dump on the "Address space size" line. Returning to my initial set of questions, you can quickly see this failure to acquire all of the memory has severe trickle down effects:
A) Does windd.exe acquire all of the physical memory?
Answer:No it doesn't appear too. It is important to understand that physical memory is translated over the bus of the computer - it does not directly correlate to the RAM - in other words, if you have 4GB of ram, that DOESN'T mean you have memory addressable from 0-4GB. In fact, a 4GB machine will have 0-5GB addressable RAM, with a large section of that mapped into other devices that are attached to the bus. All 4GB of RAM is represented in that 5GB range, but there is quite a bit more from other mapped devices. In fact on my 6GB of ram machine, the full addressable physical memory is just over 7GB. But, on my 6GB machine, the actual converted size of the windd captured image is only 5.99 GB. This is a big problem for windd. windd is very likely missing over 1GB of actual RAM in my test machine. Its theoretically possible that windd may be rebasing some of the higher memory in use down to a lower address - but if this is the case this would break any deep forensic memory analysis from occurring. You can't rebase the offsets of physical memory because you won't be able to accurately reconstruct/resolve the virtual memory to physical memory page mappings which is one of the first things done in any automated memory analysis
B) Would a "raw format" image dump of a 64-bit vista machine load properly into HBGary's Responder?
Answer:No it won't successfully load/analyze - This has to do with the fact that not all of the memory is acquired or its being improperly rebased away from its original zero-based physical memory offset. A tremendous amount of critical kernel structures are located in high memory, the region which windd is not properly capturing. While the rest of the image may be accurate, this missing data prevents reconstruction of the operating system state. windd is not currently creating a true/valid RAW image because it's not a complete zero-based memory image. Loading a windd image into Responder was actually the first thing I tried to do since HBGary's responder already supports RAW, zero-based addressed dump formats for multiple external vendors.
C) Should windd memory images that contain greater than 4GB of ram be considered admissible in court?
Answer:Recommendation is no - not presently. Any physical memory image that is incomplete or remapped/modified could easily be thrown out in court. The fact that windd doesn't capture all of the physical memory on the system opens the door for a savvy defense attorney to speculate that perhaps there might have been something in the missing/non-acquired range that would have exonerated their client from whatever crime they're being accused of, and then it's all downhill from there.
D) Was windd really the first tool to support physical memory acquisition on Windows 7? (as claimed by the author)
Answer:This was just personal - I take pride in my work and want to make it clear that windd was not the first. Besides the identified issues in this post, its noteworthy that the current shipping version of FDPro has supported acquisition Windows 7 since the OS was made available in a pre-release format from Microsoft. FDPro has been capable of acquiring full, accurate, greater than 4GB images of Windows 7 as of last year. NOTE: HBGary's Responder does not yet fully support the automatic analysis of Windows 7 which is why HBGary had elected to not publicly advertise Windows 7 acquisition support. Any timestamped copy of FDPro.exe from as long ago as last year can successfully acquire an accurate/complete image of both 32 and 64-bit Windows 7 systems.