при запуске программы на компьютере с 4 гигами памяти появлялось ошибка "Available memory less than 15mb!!! -1310720" декомпиляцуия позволила узнать причину GlobalMemoryStatus возвращает отрицательное количество памяти PHP: struct _MEMORYSTATUS Buffer; // [sp+18h] [bp-20h]@1 Buffer.dwLength = 32; GlobalMemoryStatus(&Buffer); v0 = Buffer.dwTotalPhys; dword_2042D298 = Buffer.dwTotalPhys; if ( (signed int)Buffer.dwTotalPhys < 15728640 ) { sub_20101560((int)"Available memory less than 15MB!!! %i\n", SLOBYTE(Buffer.dwTotalPhys)); v0 = Buffer.dwTotalPhys; }
вариант номер раз - пропатчить переход, чтобы управление никогда не попадало в этот блок вариант два - изменить код проверки, сделав сравниваемые числа беззнаковыми. еще можно вообще убить вызов GlobalMemoryStatus. Вообще все ограничивается только фантазией. Или не понятно как это сделать технически? Hiew и прочие hex редакторы с поддержкой дизассемблирования.