Форум программистов, компьютерный форум CyberForum.ru

Снимок оперативной памяти - C++

Восстановить пароль Регистрация
 
konstant
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 18
23.12.2014, 07:32     Снимок оперативной памяти #1
Возможно ли на си++ написать консольную программу, которая бы делала снимок ОП, как это делает Snapshot RAM (без интерфейса)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.12.2014, 07:34     Снимок оперативной памяти #2
Конечно можно, язык вполне универсален. Вот только даст ли система обозреть память? В многозадачных системах она разделена на изолированные адресные пространства, ни одно приложение не имеет доступа вне своего адресного пространства. Или надо для DOS?
konstant
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 18
23.12.2014, 08:10  [ТС]     Снимок оперативной памяти #3
В принципе можно и для DOS....вы знаете как это сделать?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.12.2014, 08:39     Снимок оперативной памяти #4
Ну я немножко не умею с высокого уровня работать с сегментным адресом. Может там и на высоком уровне есть какие особенности, отличающие его от плоского адреса? Для z80 могу написать, у него даже под DOS плоский адес, но скомпилировать будет проблематично. Разве что кроскомпилятор найдёте, иначе чёрта с два. А на windows, тем более на LINUX можно снять только память одного процесса и сделать это может только сам процесс. А снимок физической оперативы не получится, так как адресное пространство виртуально и от себе подобных изолировано. И язык здесь не при чём, это ограничение системы.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,315
23.12.2014, 12:45     Снимок оперативной памяти #5
Цитата Сообщение от taras atavin Посмотреть сообщение
А на windows, тем более на LINUX можно снять только память одного процесса и сделать это может только сам процесс.
Ну, насчет Линуха утверждать не буду. Однако насчет Вин мэтр Джеффри Рихтер с тобою не согласен

ПыСы: под Досом оно делается с помощью MK_FP(seg, ofs) - make far pointer.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.12.2014, 12:58     Снимок оперативной памяти #6
Цитата Сообщение от CheshireCat Посмотреть сообщение
Ну, насчет Линуха утверждать не буду. Однако насчет Вин мэтр Джеффри Рихтер с тобою не согласен
Это какой нибудь автор трояна? Сколько проживёт найденная им уязвимость?
Убежденный
Системный программист
 Аватар для Убежденный
14455 / 6439 / 1018
Регистрация: 02.05.2013
Сообщений: 10,679
Завершенные тесты: 1
23.12.2014, 13:08     Снимок оперативной памяти #7
konstant, если нужно под Windows, то максимум, чего можно
достичь из обычного приложения - прочесть память процесса, своего или
чужого (при условии, что есть нужные права). Прямого доступа к оперативной
памяти у пользовательских приложений нет, а такие программы, как
RAMMap Руссиновича (Sysinternals) для таких целей используют драйверы.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
23.12.2014, 14:39     Снимок оперативной памяти #8
Убежденный, интересно этот RAMMap в real mode переключается или таблицы, используемые при paging'е, подменяет? Как он всю память обходит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2014, 18:15     Снимок оперативной памяти
Еще ссылки по теме:

Chart'у не хватает оперативной памяти C++ Builder
C++ Builder Определение частоты оперативной памяти
C++ Данные из оперативной памяти
C++ Тестирование RAM (оперативной памяти)
Определить производителя оперативной памяти C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
 Аватар для Убежденный
14455 / 6439 / 1018
Регистрация: 02.05.2013
Сообщений: 10,679
Завершенные тесты: 1
23.12.2014, 18:15     Снимок оперативной памяти #9
Я не смотрел, но уверен, что точно не real mode, а, например, вот так:

MmMapIoSpace routine
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
MmMapIoSpace returns the base virtual address that maps the base physical address for the range.
Yandex
Объявления
23.12.2014, 18:15     Снимок оперативной памяти
Ответ Создать тему
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru