GlobalMemoryStatus и ОЗУ 4 гб

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by fire64, 2 Oct 2009.

  1. fire64

    fire64 Elder - Старейшина

    Joined:
    1 Apr 2008
    Messages:
    251
    Likes Received:
    22
    Reputations:
    5
    при запуске программы на компьютере с 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;
      }
     
  2. [QwyZ]

    [QwyZ] Banned

    Joined:
    7 Jul 2009
    Messages:
    71
    Likes Received:
    27
    Reputations:
    5
  3. fire64

    fire64 Elder - Старейшина

    Joined:
    1 Apr 2008
    Messages:
    251
    Likes Received:
    22
    Reputations:
    5
    вопрос как сделать так что бы не было ошибки ?
     
  4. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    вариант номер раз - пропатчить переход, чтобы управление никогда не попадало в этот блок
    вариант два - изменить код проверки, сделав сравниваемые числа беззнаковыми.
    еще можно вообще убить вызов GlobalMemoryStatus. Вообще все ограничивается только фантазией. Или не понятно как это сделать технически? Hiew и прочие hex редакторы с поддержкой дизассемблирования.
     
    1 person likes this.
  5. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    вариант номер три - запостить тему вместе с линком на программу в разделе "Реверсинг"
     
  6. fire64

    fire64 Elder - Старейшина

    Joined:
    1 Apr 2008
    Messages:
    251
    Likes Received:
    22
    Reputations:
    5
    всем спасибо уже сам разобрался

    заменил JGE на JMP и тем самым обошел проверку