В этом случае вы действительно хотите обмануть конкретное приложение, а не саму Windows.
Потенциальные проблемы
Во-первых, очевидно, что такая конфигурация не поддерживается вашей программой. Так что это действительно на свой страх и риск.
Вы можете подумать, что, запустив программу, вы можете положиться на файл подкачки, чтобы обрабатывать любые объемы ОЗУ выше установленной физической памяти. К сожалению, это не всегда работает, так как рассматриваемая программа может запрашивать физическую память специально. Мне известна хотя бы одна виртуальная машина / гипервизор, которая делает это, и я не удивлюсь, если Bluestacks будет в одной лодке.
Общий метод
По сути, вы хотите обмануть установщика, позволяющего вам установить программу, или самой программы, если она проверяется при запуске. Когда эти программы / установщики проверяют наличие установленной памяти, они должны вызывать функции Win32 API для получения объема физической памяти. Некоторые примеры функций, которые они могли бы вызвать:
Вам нужно как-то заставить эти функции возвращать в программу ложный / неверный результат.
Как правило, вам нужно либо использовать отладчик (например, windbg) и установить точку останова для этих функций, откуда вы можете манипулировать возвращаемым значением. Это ручной процесс и, возможно, он лучше подходит для установщика - вы захотите что-то автоматическое, если программа сама выполняет эти проверки.
Если вы хорошо справляетесь с задачей, вы можете написать DLL, которая перехватывает рассматриваемые API, а затем внедрить DLL в процесс. Затем вы можете сделать это из пользовательского модуля запуска (... теперь это выглядит подозрительно похоже на трещины активации). Такие библиотеки, как EasyHook и Detours, делают это проще.
Вы также можете найти полезные инструменты, такие как WinAPIOverride . Это может позволить вам избежать написания чего-либо самостоятельно. (Примечание: я никогда не использовал эту программу и не заявляю и не гарантирую, безопасна ли она для стабильности или целостности вашей системы. Используйте на свой риск.)
MSI установщики
Если установщик является установщиком MSI, то это особый случай. В отличие от двоичных инсталляторов, формат MSI является довольно хорошо документированной базой данных, и существуют инструменты для его редактирования. Если требуемый минимальный размер просто сохраняется как свойство установщика, вы, вероятно, можете отредактировать установщик, чтобы изменить его. Однако, если они встроены как пользовательские действия и т.д., Такой подход может не сработать.
В этой ветке форума MSDN кратко обсуждается идея (см. Ответ Джи.Чжоу). К сожалению, хотя он предлагает взглянуть на MSI с Orca, он также говорит, что, вероятно, это не применимо в этом сценарии.