|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|||||||||||
RAM, чтение и запись в RAM, Pointer ы24.07.2013, 06:37. Показов 6153. Ответов 10
Метки нет (Все метки)
Так! Начну сразу с проблемы.
![]() Допустим есть приложение "какая-то хрень.exe", а в нем есть переменная допустим "32" с типом integer(int), а проблема заключается в том, что переменная находится каждый раз в разном участке памяти! . Ну ладно, нашел я что такое Pointer - Некий адрес+смещение = нужный адрес! Вроде бы все нишьяГ, но находим снова проблему:поинтер начинается с адреса, который должен найтись по СУПЕРПУПЕРСЛОЖНОЙФОРМУЛЕ: "какая-то хрень.exe+нулевое смещение = некий адрес". И так, кто еще не понял, вопрос заключается в следующем: как определить начальный адрес приложения? Имею ввиду: 0x00000 - начало озу ... - всякие программы 0x001d0 - начало выделенной озу под "какая-то хрень.exe" - То, что нужно узнать. ... 0xFFFFFF ЗЫ:На всякий случай кину сорс: main.cpp:
Не по теме: Да ну.... Ребята, ну ответьте, пожалуйста. Тема уходит в ж*пу ведь.
0
|
|||||||||||
| 24.07.2013, 06:37 | |
|
Ответы с готовыми решениями:
10
I don't understand RAM. What RAM do I get? Lenovo 110-15IBR / WDC WD5000LPCX-24VHAT0 / RAM 2Gb: заменять на SSD или увеличить RAM, или разом это всё? Asus P5PQL-am без RAM пищит, с RAM тоже пищит |
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
|
||
| 24.07.2013, 06:55 | ||
|
вроде как ядро делит память динмически под каждое приложения и те адреса памяти, на которые у вас указывают ваши указатели ВНУТРИ программы на самом деле совсем другие в реальной ОЗУ. и этим занимается ядро. мож ошибаюсь конечно... у интеловских процов вроде даже появилась какая-то технология, которая позволяет без лишних тактов из динамических (замаскированных системой) адресов доставать именно реальные в ОЗУ. но это мое мнения в коем я не совсем уверен.
1
|
||
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|||
| 24.07.2013, 07:39 [ТС] | |||
![]() То есть вот например у приложения есть некий диапазон памяти, допустим от 0x04B2C7B8 до 0x0C0E00E4. Так ведь? Если так, то мне нужно узнать(при помощи С++) 0x04B2C7B8.Если вы мне пытаетесь доказать, что 0x04B2C7B8 будет после перезапуска приложения уже не 0x04B2C7B8, то тут напрасно, ибо я и сам это понимаю. И мне нужно неким чудодейственным методом вычислить это значение, после перезапуска приложения(желательно на С++).
0
|
|||
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
|
||
| 24.07.2013, 07:50 | ||
|
Не буду я с вами спорить ибо сам в этой теме плаваю.
1
|
||
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
||
| 24.07.2013, 09:32 [ТС] | ||
![]() Добавлено через 1 час 35 минут
0
|
||
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
|
|||
| 24.07.2013, 09:51 | |||
|
0
|
|||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||||||
| 24.07.2013, 10:20 | ||||||
|
Для начала уточни, о какой ОС идет речь?
В Win каждый процесс выполняется в своем собственном отдельном виртуальном адресном пространстве, никак не связанном со страницами физической памяти (точнее, таблица соответствия есть, но управляет ей исключительно ядро операционной системы). Для подавляющего большинства процессов базовый адрес загрузки есть 0x00400000. Узнать его можно очень просто:
2
|
||||||
|
Ушел с форума
|
||
| 24.07.2013, 10:21 | ||
|
Современные ОС давно уже работают с виртуальной памятью, где каждому процессу выделяется свое адресное пространство размером от 4 Гигабайт и выше. "Начальный адрес приложения" - это, грубо говоря, 0x00000000 (для 64-битных систем 0x00000000 00000000), более точно верхнюю и нижнюю границы доступных адресов можно узнать с помощью GetSystemInfo. Если и искать что-то, то в этой памяти, а не в физических адресах ОЗУ, куда, кстати говоря, у пользовательских приложений вообще нет доступа. Короче, открываете нужный процесс (OpenProcess) с правами PROCESS_QUERY_INFORMATION и PROCESS_VM_READ, получаете информацию о доступных страницах памяти (VirtualQueryEx) и читаете их содержимое (ReadProcessMemory). Вот и весь рецепт.
2
|
||
|
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
|
|
| 24.07.2013, 10:21 | |
|
1
|
|
|
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
|
|
| 24.07.2013, 11:13 [ТС] | |
|
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 24.07.2013, 11:17 | |
|
Ткнуть носом можно: сюда - http://msdn.microsoft.com/en-US/
Например, вот первая функция: http://msdn.microsoft.com/en-u... 85%29.aspx
1
|
|
| 24.07.2013, 11:17 | |
|
Помогаю со студенческими работами здесь
11
Перевел ПК в "сон" -> ПК не выходит из "сна" -> не включается, нет POST-BIOS -> вынул RAM, вставил RAM -> все работает Запись данных в RAM RAM 4 GB RAM 2 RAM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|