2

I've always wondered if I can snapshot a program's current state from memory, either to load again on the same PC or even possibly on another. It should ideally be a solution for an arbitrary program.

I use Windows 7 and am becoming ever more comfortable with Ubuntu, if there is a way using either OS. Basically, I wonder if I could do a sort-of selective form of the OS hibernation feature, where all memory is committed to disk?

There would be myriad uses for this, for me at least, from program debugging, to general conveniences. If it's possible, is it data-safe or more hackish, dangerous in some way?

5
  • this is cool, i would like to know this as well.
    – pneumatics
    Oct 8, 2012 at 1:17
  • I'm not sure, but wouldn't something like ASLR make this difficult? Also, would it be legal? (As in, wouldn't it allow one to indefinitely use shareware apps that expire/get crippled after some time?)
    – Karan
    Oct 8, 2012 at 6:09
  • "Torrents absolutely have legitimate uses, which is doubtless why they're still around." - I agree, but how did talk of torrents enter the discussion anyway?
    – Karan
    Oct 9, 2012 at 13:09
  • To say, just because it may be used illegitimately doesn't mean it should be prevented outright.
    – Alex Nye
    Oct 9, 2012 at 21:03
  • Didn;t emacs do this. Long slow startup. Dump core. Save core as a restartable program which already did lots of work.
    – Hennes
    Dec 9, 2015 at 8:49

1 Answer 1

1

Different from a hard drive. Ram dosnt have any "structure".

Even if a hard drive logically sprinkles data everywhere data is still virtually sorted for the user.

On the hard drive you could easily copy a programs appdata folder to get a programs ascociated user specific data. This is non runtime however.

To do the same thing on ram. You would either use a software that tracks all data allocated by the program (and where it gets stored ofc). Or force the program to save its data in a specific memory range. This could probably be achieved running it in sandbox or a virtuall machine.

If this is hackish? There is nothing more dangerous than managing a programs memory being something else than the program itself or in some cases the os.

This is why i really would recomend using a virtual machine, to atleast reduce the amount of damage this can do to your system.

Data saved on ram can be dependent on hard drive data, networked data. Time, date and other state.

If you where doing this, also copying hard drive data would be a must.

There are reasons why most programs have save/loading features. What software are you using where these arent enough?

Also note that this in most cases could not be used to bypass softwares free expiration date. This would only be true if the software where required to be continussly run this certain amount of time. Copying application specific hard drive data wich i also recomend you to do, is however a different matter.

There is a linux software made for clusters called SmartSuspend : http://www.jaryba.com/evaluate-smartsuspend

If you where to find other software doing this, there is a huge chance that it would be a virtual machine underneath. I would take a look around to se what i could do to make program specific virtualisation more flexible and automated. There are for example ways of running programs virtually and still displaying them in a regular window. And shortcuts for automatically launching a virtual machine for a program.

There is also no way you could do this "on the whim". As i said before data is sprinkled everywhere and unless you track it from the begining, there is no way you can find wich data is stored by a specific program.

1
  • This is cool. I am learning from this as a thought experiment alone. However, to accept the answer, I'd like a program which does this. I know I could do it with a virtual machine, but I'd like to avoid the overhead, the extra steps required, and the inflexibility of not being able to do it at a whim to any specific program.
    – Alex Nye
    Oct 8, 2012 at 6:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .