Перейти к содержанию

Баг в сканере сигнатур


Рекомендуемые сообщения

Здравствуйте , помогите исправить баг в сканере сигнатур .
Сканер простой . Из урока Coder'а .
Раздражает эта строчка

byte* buffer = new byte[mbi.RegionSize];

Тем , что из-за неё вылетает чит. Какими другими способами можно выделить и освободить память ?

Ссылка на комментарий
Поделиться на другие сайты

29 минуты назад, helldrg сказал:

Посмотри в этот момент чему равняется mbi.RegionSize. Проблема в нем похоже

С ним всё норм . Но лог компилятора выдаёт std::bad_alloc

Изменено пользователем ШАРИК
Ссылка на комментарий
Поделиться на другие сайты

Обычно такое бывает когда значение в скобках отрицательное или слишком большое. Если у тебя значение  mbi.RegionSize в пределах нормы, тогда не знаю в чем дело

Ссылка на комментарий
Поделиться на другие сайты

Цитата

Какими другими способами можно выделить и освободить память ?

Другой способ такой:

void *buffer;
buffer = VirtualAlloc(0, mbi.RegionSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);


освобождение
 

if(buffer)
{
  VirtualFree(buffer, 0, MEM_RELEASE);
}

 

Изменено пользователем helldrg
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Ну тут много вариантов, у меня, к примеру, раньше такая же ошибка была, из-за того, что я указывал не правильный размер модуля, в котором искал сигнатуру(размер модуля был меньше указанного)

Ссылка на комментарий
Поделиться на другие сайты

Только что, helldrg сказал:

Ну тут много вариантов, у меня, к примеру, раньше такая же ошибка была, из-за того, что я указывал не правильный размер модуля, в котором искал сигнатуру(размер модуля был меньше указанного)

Не , мне наверно надо выделить память под byte* а не под void *... Только как ?

Ссылка на комментарий
Поделиться на другие сайты

void* универсальный тип, только приведение типов сделать и все. Есть еще malloc функция, которая выделяет память, но я ей никогда не пользовался поэтому ничего писать про неё не буду

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.