How to Trick Windows 10 Into Thinking it Has More RAM Then it Does?

I have a computer that has 1 GB of RAM (I know - bad buying choice!!). I would like to install the program BlueStacks, but it requires 2 GB of RAM.

Is there a way that I can tell Windows 10 that it has 2 GB of RAM (even though it doesn't) so I can easilly install programs?


In this case, what you really want to do is to trick a specific application, not Windows itself.

Potential problems

Firstly, obviously, such a configuration is not supported by your program. So it's really a at your-own-risk thing.

You might be thinking that once you have the program running, you can rely on the page file to handle any RAM allocations above your installed physical memory. Unfortunately, this does not always work, since it's possible for the program in question to request physical memory specifically. I am aware of at least one virtual machine/hypervisor that does so, and I would not be surprised if Bluestacks is in the same boat.

General method

Basically, you want to trick either the installer into letting you install the program, or the program itself if it happens to check when you launch it. When these programs/installers check for installed memory, they must call Win32 API functions to retrieve physical memory quantity. Some examples of functions they could call:

  • GetPhysicallyInstalledSystemMemory
  • GlobalMemoryStatusEx

You'll need to somehow make these functions return a fake/incorrect result to the program.

As a general idea, you'll want to either use a debugger (e.g. windbg) and set a breakpoint on those functions, from where you can manipulate the return value. This is a manual process and perhaps better suited to the installer - you're going to want something automatic if the program itself performs these checks.

If you feel up to the task, you can write a DLL that hooks the APIs in question, and then inject the DLL into the process. You can then do so from a custom launcher (...this is feeling suspiciously similar to activation cracks now). Libraries like EasyHook and Detours make this easier.

You might also find tools such as WinAPIOverride useful. That one might let you avoid having to write anything yourself. (Note: I have not ever used this program, and make no claims or guarantees towards whether it's safe for your system stability or integrity. Use at your own risk.)

MSI installers

If the installer is a MSI installer, then it's a bit of a special case. Unlike binary installers, the MSI format is a fairly well-documented database, and tools exist for editing it. If the required minimum size is simply stored as an installer property, you can probably edit the installer to change it. However, if they're embedded as custom actions, etc., then such an approach might not work.

This MSDN forum thread briefly discusses the idea (see the response by Ji.Zhou). Unfortunately, while he does suggest taking a look at the MSI with Orca, he also says it's probably not applicable in this scenario.