Написать программу проверка памяти

Обновлено: 08.07.2024

Часто возникает необходимость найти и поменять какие-либо строки/числа в чужой программе. С этой задачей лучше всего справляется ArtMoney. Для тех, кто не умеет или не хочет использовать отладчики, это на сегодня, наверное, единственный вариант, так как нормальных аналогов просто нету. Хотя ArtMoney и поддерживает очень много возможностей для работы с памятью, весь процесс происходит вручную, без возможности создания действий по алгоритму. Если значений много и их надо, например, менять при каждом запуске программы, то время, затрачиваемое на эту работу, превышает всякие допустимые пределы. Выход один — написать свой редактор памяти!

Ищем исходники

В свое время у меня возникла задача, требующая модификации значений в памяти другой программы постоянно во время ее работы. Одним из условий было, что программа будет работать и на других машинах, а это значит, что вариант записи в память по заранее определенным адресам не подходил бы: адреса для разных машин будут разные и нужно реализовывать именно поиск адресов в памяти.

Я принялся за написание загрузчика и стал искать информацию по этому вопросу. К сожалению я не владею Delphi, и когда обнаружилось, что большинство исходников именно на этом языке, я немного растерялся. Переписывать огромное количество кода на C++ у меня не было ни времени, ни возможности. Еще одним открытием стало, что ни один из найденных мной исходников не работал корректно: программа либо висла, либо работала с ошибками. К тому же работа всех этих программ по поиску в памяти занимала гораздо больше времени, чем должна (раз в 15-20 дольше ArtMoney).

Поиск по форумам (в т.ч. и английским) так же не был радостным: в темах, связанных с сабжем по C++ были обрывки кода (явно без необходимого функционала). Не помню тем, где бы автор успешно решил свой вопрос. Тем не менее я вынес определенные знания про устройство оперативной памяти в Windows и узнал о функциях, используемых в работе.

После нескольких дней мучений я нашел один полезный топик. Автор приводит вполне рабочую программу на C++, к сожалению работала она очень медленно. Решение есть там же в предпоследнем посте. Осталось только скомпоновать два кода и снабдить их комментариями. Думаю, приведенная ниже программа многим поможет решить задачу поиска по памяти процесса, ну и узнать что-то новое.

Поиск и редактирование значений в памяти программы

Программа для теста
Сам редактор

В заключении

Код сыроват, есть над чем поработать, но это, видимо, единственный готовый пример решения задачи на C++ в рунете. Я намеренно не стал делать здесь все исправления и освещать все ньюансы, т.к. это сильно раздуло бы статью (а она и так не маленькая получилась). В любом случае он будет полезен, как каркас для написания редактора памяти под свои нужды, а так же дает понимание, как надо производить поиск в памяти, чтобы он занимал несколько секунд, а не минут.

Использование средства диагностики памяти Windows

Если сбои системы, синие экраны BSoD или иные проблемы при работе Windows 10, 8.1 или Windows 7 наводят вас на мысли о том, что имеются какие-либо проблемы с оперативной памятью компьютера, может иметь смысл выполнить её проверку, а начать можно со встроенного средства диагностики проверки памяти Windows.

В этой инструкции подробно о способах запустить средство проверки памяти средствами Windows, причём даже в тех случаях, когда вход в систему невозможен, а также о возможных вариантах действий в случае, если в результате теста средство диагностики памяти сообщает о том, что были обнаружены проблемы оборудования. На схожую тему: Устранение неполадок Windows 10.

Как запустить средство проверки памяти в Windows 10 и предыдущих версиях системы

В случае, если операционная система запускается, вход в неё и работа возможны, вы можете использовать один из следующих вариантов запуска средства проверки памяти:

  1. Найти нужный пункт в разделе «Средства администрирования Windows» меню «Пуск».
  2. Нажать клавиши Win+R на клавиатуре, ввести mdsched.exe и нажать Enter.
  3. Открыть панель управления, выбрать пункт «Администрирование» и запустить «Средство проверки памяти Windows».
  4. Использовать поиск в панели задач Windows 10, начав вводить «Средство проверки памяти». Или встроенные средства поиска в предыдущих версиях ОС.
  5. Вручную запустить файл C:\Windows\System32\MdSched.exe

Если же ситуация осложняется тем, что Windows не запускается, вход в неё невозможен, либо сразу после него происходят сбои, можно использовать следующие способы запуска средства диагностики оперативной памяти:

  1. Загрузить компьютер или ноутбук с загрузочной флешки с Windows 10 или другой версией Windows, можно и с загрузочного диска. На экране программы установки нажать клавиши Shift+F10 (Shift+Fn+F10 на некоторых ноутбуках), ввести mdsexe в открывшейся командной строке и нажать Enter. После выбора в утилите проверки пункта «Выполнить перезагрузку и проверку», загружайте компьютер не с флешки, а с обычного загрузочного HDD или SSD.
  2. Средство проверки памяти можно запустить из среды восстановления Windows 10 — нажав кнопку «Дополнительные параметры» на синем экране с ошибкой или, находясь на экране блокировки Windows 10 (с выбором имени пользователя) нажать по изображенной справа внизу кнопке «Питания», а затем, удерживая Shift, нажать «Перезагрузка». В среде восстановления выбираем «Поиск и устранение неисправностей» — «Дополнительные параметры» — «Командная строка». А в ней, как и в предыдущем случае используем команду mdsched.exe.
  3. Если у вас есть подготовленный диск восстановления Windows, запуск можно осуществить, загрузившись с него.

Использование средства проверки памяти Windows и просмотр результатов

Перезагрузить компьютер для проверки памяти

После запуска средства проверки памяти вам будет предложено перезагрузить компьютер, после согласия, процесс будет выглядеть следующим образом:

  1. Начнётся проверка оперативной памяти, которая может занять продолжительное время. Может показаться, что средство диагностики зависло: на всякий случай подождите в такой ситуации 5-10 минут. Если же действительно произошло зависание, не исключено что есть проблемы с оборудованием, вероятно — с оперативной памятью, но не обязательно.
  2. Если в ходе проверки нажать клавишу F1 (или Fn+F1, если F1 не срабатывает), вы попадёте в настройки средства диагностики памяти Windows. Здесь можно выбрать набор тестов (по умолчанию — обычный), использование кэша, и число проходов. Переключение между разделами настроек выполняется клавишей Tab, изменение параметров — стрелками и вводом цифр (для числа проходов), применение параметров — клавишей F10. После изменения настроек тест перезапускается.
  3. В ходе проверки вы будете видеть информацию вида «Неполадки пока не обнаружены» или «Были обнаружены проблемы оборудования».

После завершения проверки компьютер будет автоматически перезагружен. Дальнейшие шаги — просмотр результатов.

Результаты проверки памяти в просмотре событий Windows

  • После перезагрузки в случае Windows 10 вы можете увидеть уведомление в области уведомлений, сообщающее о результате проверки памяти. Но оно отображается не всегда.
  • Можно зайти в просмотр событий, для этого нажимаем Win+R, вводим eventvwr.msc и нажимаем Enter. Там открываем раздел «Журналы Windows» — «Система», находим пункты, где в столбце «Источник» указано MemoryDiagnostics-Results и просматриваем результаты.

Учитывайте, что ошибки, «вылеты», синие экраны и зависания не всегда связаны с проблемами оперативной памяти: если средство диагностики показывает, что всё в порядке, есть и иные возможные причины: отключенный файл подкачки, проблемы с HDD или SSD (или с их подключением, например — неисправный кабель), сторонние антивирусы или, наоборот, вредоносные программы, неправильная работа драйверов оборудования.

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

К сожалению, средство диагностики не сообщает о том, какие именно проблемы были обнаружены в ходе проверки, а лишь рекомендует обратиться к производителю оборудования. Что можно сделать:

  1. Отключить любые опции ускорения памяти (изменение частоты, таймингов и другие) при наличии соответствующих опций в БИОС или ПО производителя материнской платы или ноутбука.
  2. Попробовать проверить планки памяти по одной, в других слотах на материнской плате для того, чтобы выяснить, появляются ли проблемы только с одним конкретным модулем памяти или в одном конкретном разъеме.
  3. Использовать другие утилиты для проверки оперативной памяти при необходимости.
  4. Прочитать документацию к материнской плате ПК — возможно, это какая-то несовместимость с памятью с конкретными характеристиками (если вы недавно добавили новые модули памяти или только что самостоятельно собрали компьютер).
  5. Иногда может помочь обновление БИОС.

Видео инструкция

Если вы разобрались, чем была вызвана именно ваша проблема, буду благодарен комментарию к статье: возможно, для кого-то он окажется полезным.

Программы для проверки оперативной памяти

В этой статье рассмотрим несколько программ, способных проанализировать ОЗУ и выявить сбойные планки.

GoldMemory

GoldMemory – программа, поставляемая в виде загрузочного образа с дистрибутивом. Работает без участия операционной системы при загрузке с диска или другого носителя.

Программа для тестирования оперативной памяти GoldMemory

Софт включает несколько режимов проверки памяти, умеет тестировать производительность, сохраняет данные проверки в специальный файл на жестком диске.

MemTest86

Еще одна утилита, которая распространяется уже записанной в образ и работает без загрузки ОС. Позволяет выбирать варианты тестов, отображает информацию об объеме кэша процессора и памяти. Основное отличие от GoldMemory – нет возможности сохранить историю тестов для последующего анализа.

Программа для проверки оперативной памяти MemTest86

MemTest86+

Windows Memory Diagnostic Utility

Очередной представитель консольных утилит, работающих без участия операционной системы. Разработанная корпорацией Microsoft, Windows Memory Diagnostic Utility является одним из наиболее эффективных решений для выявления ошибок в оперативной памяти и гарантированно совместима с Windows 7, а также более новыми и старыми системами от MS.

Утилита для диагностики оперативной памяти Windows Memory Diagnostic Utility

RightMark Memory Analyzer

Данный софт уже имеет собственный графический интерфейс и работает под Windows. Основной отличительной чертой RightMark Memory Analyzer является настройка приоритета, что дает возможность осуществлять проверку ОЗУ без нагрузки на систему.

Утилита для проверки ОЗУ на наличие ошибок RightMark Memory Analyzer

MEMTEST

Очень маленькая программка. В бесплатной версии умеет только проверять указанный объем памяти. В платных же редакциях имеет расширенные функции по отображению информации, а также возможность создания загрузочного носителя.

Программа для проверки оперативной памяти MEMTEST

MemTach

MemTach – софт для тестирования памяти профессионального уровня. Проводит множество тестов производительности ОЗУ в различных операциях. В силу некоторых особенностей не подходит рядовому пользователю, поскольку назначение некоторых тестов известно только специалистам или продвинутым юзерам.

Утилита для проверки быстродействия оперативной памяти MemTach

SuperRam

Данная программа является многофункциональной. В ее состав входят модуль тестирования быстродействия оперативной памяти и монитор ресурсов. Основная функция SuperRam – оптимизация ОЗУ. Софт в реальном времени сканирует память и высвобождает объем, не используемый в данный момент процессором. В настройках можно выставить границы, при которых будет включаться эта опция.

Программа для оптимизации и тестов быстродействия ОЗУ SuperRam

Ошибки в оперативной памяти могут и должны вызывать неполадки в работе операционной системы и компьютера в целом. Если возникло подозрение, что причиной сбоев является ОЗУ, то необходимо произвести тестирование с помощью одной из программ, приведенных выше. В случае обнаружения ошибок, как это ни печально, придется заменить неисправные модули.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Доброго времени суток.

Довольно часто при нестабильном поведении компьютера/ноутбука (например, стали появляться ошибки, зависания, вылетает синий экран, есть искажения изображения и пр.) , требуется провести проверку оперативной памяти ОЗУ (RAM).

В ходе этого тестирования можно выяснить, все ли в порядке с памятью, нет ли ошибок, не требуется ли замена плашки (кстати, протестировать ОЗУ может быть не лишним и при покупке новой планки) .

Вообще, привести диагностику памяти можно разными путями:

  1. использовать средства диагностики Windows (если у вас ОС Windows 7, 8.1, 10);
  2. либо использовать сторонний софт (на мой взгляд одна из лучших утилит для такого теста — Memtest 86+) .

В этой статье рассмотрю оба эти варианта (вообще, конечно, второй вариант более предпочтителен!).

ускорение ПК

Проверка ОЗУ (RAM) на ошибки

Средство диагностики памяти Windows

Вообще, лично на мой взгляд, встроенный софт в Windows, как правило, уступает софту стороннего разработчика. Поэтому, все же, если у вас есть свободная флешка (CD/DVD диск), я рекомендую воспользоваться тестом в программе Memtest 86+ (см. во второй части статьи) .

И тем не менее, как запустить проверку планок ОЗУ в Windows (актуально для Windows 7, 8, 10) :

  1. нажать сочетание кнопок Win+R ;
  2. в появившемся окне "Выполнить" ввести команду mdsched и нажать Enter (как на скрине ниже) .

mdsched — команда для проверки ОЗУ (Win+R)

mdsched — команда для проверки ОЗУ (Win+R)

Далее должно появиться окно, в котором вам предложат на выбор два варианта проверки:

Средство проверки памяти Windows

Средство проверки памяти Windows

Тест памяти запланирован

После перезагрузки компьютера/ноутбука увидите окно, как на фото ниже. Будет выполнено 2 прохода, в нижней части окна показывается состояние операции. Если с вашей памятью все хорошо — то состояние будет в статусе "Неполадки пока не обнаружены".

Средство диагностики памяти Windows

Средство диагностики памяти Windows

Если будут найдены неполадки

Рекомендую прогнать еще раз утилитой Memtest 86+. Если ошибки подтвердятся и в этой утилите — то см. конец этой статьи, там привел несколько советов.

Тестирование оперативной памяти в Memtest 86+

Memtest 86+

Memtest 86+ — одна из лучших утилит, предназначенных для тестирования оперативной памяти. Утилита может запускаться с помощью собственного загрузчика, поэтому для нее операционная система, в принципе, не нужна.

Программа поддерживает современные многоядерные процессоры, большинство чипсетов материнских плат. Memtest 86+ доступна для скачивания на официальном сайте (ссылка выше), в виде нескольких версий. О них пару слов ниже.

Про версии программы Memtest 86+ (V5.01):

  1. Download - Pre-Compiled Bootable ISO (.gz) — программа распространяется в образе ISO. Такой образ можно записать хоть на флешку, хоть на обычный CD/DVD диск (правда, могут понадобиться доп. утилиты - например, UltraISO) . В общем, универсальный вариант;
  2. Download - Pre-Compiled Bootable ISO (.zip) — тоже самое, только формат архива другой;
  3. Download - Pre-Compiled Bootable Binary (.gz) — файл в формате bin (это тоже образ диска, похож на ISO);
  4. Download - Pre-Compiled Bootable Binary (.zip) - тоже самое;
  5. Download - Auto-installer for USB Key (Win 9x/2k/xp/7) *NEW!* — самый востребованный вариант (на мой взгляд). Позволяет автоматически создать загрузочную флешку с Memtest 86+ за несколько шагов. Программа работает во всех версиях Windows: XP, 7, 8, 10;
  6. Download - Pre-Compiled package for Floppy (DOS - Win) — создание загрузочной дискеты (на мой взгляд, сегодня практически не актуально).

Я выбрал 5-й вариант (Download - Auto-installer for USB Key (Win 9x/2k/xp/7) *NEW!*), именно при помощи нее и покажу как создать флешку.

Создание загрузочной флешки с Memtest86+

Скачиваете архив, разархивируете его и запускаете файл программы (выбор версии — приведен выше) . Далее нужно вставить флешку в USB-порт и:

Создание загрузочной флешки в Memtest 86+

Загрузка с флешки и запуск теста в Memtest 86+

Чтобы загрузиться с созданной шагом ранее флешки, необходимо соответствующим образом настроить BIOS (либо воспользоваться кнопкой для вызова Boot Menu) . Тема эта достаточно обширна, поэтому чуть ниже приведу ссылки на свои статьи.

Я воспользовался вызовом Boot Menu, указал с чего загружаться (USB-флешки) и нажал Enter (скрин ниже).

загрузка с USB-флешки

Загрузка с USB-флешки

Далее, если ваша флешка правильно записана, утилита Memtest 86+ автоматически запуститься и начнет тестировать оперативную память. От вас ничего не требуется нажимать. Красной стрелкой на фото ниже показан ход тестирования (сколько процентов проверено).

Тестирование в Memtest

Тестирование в Memtest 86+ // запускается автоматически

Примечание! На всякий случай приведу клавиши управления (хотя они в большинстве случаев не нужны).

Esc – закрыть программу и перезагрузить ПК;
C – задание параметров в ручном режиме (для опытных пользователей);
F1 — Enhanced Fail Safe Mode (расширенная Fail Safe Mode).
F2 — Experimental SMT support up to 32 cores (экспериментальная SMT поддержка до 32 ядер).
При запуске производится анализ компонентов компьютера, затем начинается тестирование оперативной памяти.
Если тест не запускается в авто-режиме — запустите его при помои кнопок F1, либо F2.

Примечание!

Memtest 86+ записывает в каждый блок памяти информацию, а затем считывает её и проверяет на ошибки. Программа тестирует оперативную память циклически, т.е. у неё по умолчанию есть 11 тестов (включая нулевой), которые она гоняет по кругу неограниченное число раз (пока вы не остановите ее, нажав клавишу Esc) .

Все хорошо с памятью // прошла тест

Если же в процессе тестирования будут найдены ошибки — вы увидите красные строки (это в любом случае не хорошо (как минимум) ).

С памятью есть проблемы.

Что делать, если были найдены ошибки

Довольно популярный вопрос, наряду с вопросами по тестированию памяти.

Для начала необходимо открыть системный блок и почистить его от пыли. Вынуть планки памяти из слотов и продуть сами слоты (удобно это делать с помощью пылесоса с реверсным режимом, либо баллончика сжатого воздуха — такие продаются в компьютерных магазинах) .

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

Так же обратите внимание на контакты . Дело в том, что через некоторое время они могут окислиться, и при вставке в слот не полностью (не всегда) давать контакт. В результате, как только контакт "потерялся" — у вас завис компьютер. Рекомендую их почистить в любом случае, для этого подойдет обычная резинка/стёрка (школьная) . Оставшиеся катышки — можно либо сдуть, либо смахнуть мягкой кисточкой.

Чистка контактов памяти резинкой и кисточков

Чистка контактов памяти резинкой и кисточкой

Примечание. Процедуру нужно проводить крайне аккуратно, на чистой, сухой, ровной поверхности. Резинка лучше та, у которой две стороны: одна синяя, другая розовая. Тереть рекомендуется синей. В некоторых случаях, желтые контакты меняют цвет на более светлый.

После чистки памяти, вставьте ее вновь в слот и включите ПК (кстати, попробуйте вставить память в другие слоты, или поменять планки местами, если у вас все слоты заняты).

Далее проведите тестирование еще раз. В некоторых случаях, такая простая процедура, позволяет избавиться от ошибок, связанных с памятью, компьютер перестает зависать, перезагружаться и выдавать синий экран (тем самым, экономя ваши средства).

Если будут вновь найдены ошибки — можно попробовать сдать память в ремонт (но лично я не рекомендую). Если нет гарантийного обслуживания - лучше замените на новую (дело в том, что цена ремонта ОЗУ - во многих случаях, стоит практически столько же, сколько новая планка).

Читайте также: