@DarkNews

Эмулирование объема RAM?

Хочу попросить помощи здешней аудитории в одном вопросе, есть приложение, при запуске установщика которого происходит проверка компьютера на соответствие требованиям, и при несовпадении установка отменяется, конкретно затык в оперативной памяти, которой необходимо 4гб минимум на 64 системах, На ноутбуке стоит 4, но 250мб зарезервировано оборудованием и установщик ругается на несоответствие.
Вопрос собственно вот в чем, возможно ли как то эмулировать/исказить объем оперативной памяти, выдать установщику ложную информацию?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
На Windows (я подозреваю, в вопросе речь о ней) программно получить объем памяти можно только через две API-функции GetPhysicallyInstalledSystemMemory или
GlobalMemoryStatusEx.
  • Если требуется всего один раз обмануть один инсталлятор, то легче всего запустить его под отладчиком на паузе, найти точки входа этих функций в Kernel32.dll, повесить на их вызов брекпоинты, запустить на исполнение, поймать сам вызов, вручную подправить возвращаемое значение (в случае с GlobalMemoryStatusEx подправить структуру в памяти по адресу, передаваемому через параметр) и продолжить исполнение, этого должно быть достаточно.
  • Если требуется многократная воспроизводимость данного процесса или исполнение на другой машине, тогда потребуется написать патч к этому инсталлятору, подправляющий таблицу импорта Kernel32.dll и вставляющий на соответствующие места адреса перехватывающих функций (в общем, это довольно обширная тема, раскрыть ее можно только в двух-трех томах текста).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы