Thanks Michael. My whole purpose in this instance was to test the nbdserver project for my blog post. That's why I used this particular method. I'll follow up with Jeff and let him know what you came up with.

Thanks!
Ken

On Mon, Apr 15, 2013 at 3:51 PM, Michael Cohen <scudette@gmail.com> wrote:
Ah that explains the crash then....

You can not read the entire physical address space from start to finish because you will hit DMA regions which will cause your reads to activate PCI devices and blue screen the box. You must skip the regions which are reserved to PCI devices.

The winpmem device driver allows you to read where ever you want (i.e. it does not protect you from shooting yourself in the foot :-). The user space application is supposed to figure out where its safe to read. From quickly looking at the code for nbdserve

https://github.com/jeffbryner/NBDServer/blob/master/main.cpp

it does not seem to implement the correct algorithm for skipping the reserved memory regions (it should make an IO control to the pmem driver and ask it). There seems to be some code there to do it but it does not seem complete to me. Maybe best ask the author?

Anyway for the purpose of experimenting you could just manually write a short bash script with dd involving the skip and seek parameters to skip over the reserved regions and only image the available regions. This should not crash.

If you goal is just to obtain the image over the network, why not use netcat like the example demonstrates?

Thanks,
Michael.





On 15 April 2013 22:34, Ken Pryor <kdpryor@gmail.com> wrote:
Hi Michael,

Yes, I ran winpmem on the subject machine and allowed it to save an image file to that machine successfully. In my nbdserver test, I ran winpmem -l and verified the service was running. I went to the nbd Linux client and began the process of imaging pmem from the subject computer via the network. Running nbd-client on the Linux workstation, I assigned the pmem output coming over the network to /dev/nbd0. I used the following command line then to image:

dd if=/dev/nbd0 of=./ramoutput.dd

This has been successful on 32 bit XP machines, but it dies on the 64 bit machine. If this description doesn't make sense, I'll try to do a better description later this evening.

Ken



On Mon, Apr 15, 2013 at 12:16 PM, Michael Cohen <scudette@gmail.com> wrote:
Hi Ken,
   I have not had a chance to play with nbdserver. Are you saying that winpmem acquisition to the local disk completed ok?

Did you manage to image with winpmem over a socket and netcat? Or are you trying to image to a network share?

Thanks,
Michael.


On 15 April 2013 18:25, Ken Pryor <kdpryor@gmail.com> wrote:

I recently used the latest version of winpmem in conjunction with Jeff Bryner's nbdserver to acquire ram for a couple different systems in support of a blog post I was writing. Acquisition of 1 gb memory from an XP 32 bit vm via the network worked perfectly.

However, acquiring memory from a 64 bit Win 7 physical system with 12 GB ram failed. It would start okay, but would freeze up and reboot the Win 7 system at 3.5 GB every time when being acquired using nbdserver via the network. Using winpmem directly on the machine works successfully, but fails on the network.

Any suggestions as to the problem? I can provide any data or follow up testing if needed.

Ken


_______________________________________________
Vol-users mailing list
Vol-users@volatilityfoundation.org
http://lists.volatilityfoundation.org/mailman/listinfo/vol-users