0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86
1

Работа с ячейками памяти

07.01.2018, 18:13. Показов 3146. Ответов 10
Метки нет (Все метки)

Есть идея написать простую консольную программу для вывода значений которые лежат в ячейке памяти и сканирования этих самых ячеек(типо artmoney). Я не могу понять как в некоторых программах люди помещают значение в определенную ячейку тоесть например 0x02bd2f вот как они выбирают этот адрес? С каких цифр начинаются значения ячеек памяти с 0x00000? Кто может работал с такими вещами просвятит? Может требуется использовать библиотеки типо memcpy?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2018, 18:13
Ответы с готовыми решениями:

Работа с массивами в динамической памяти
Задача такова. Необходимо создать 2 массива в динамической памяти. Обращение к элементам массива -...

Работа со строками и выделением памяти
Задание написать класс строк (что-то типа String). #define MAX 100 class ascii { private: ...

Работа с кучей. Перевыделение памяти
Для объяснения вопроса приведу сначала пример: #include <stdio.h> #include <stdlib.h> class...

Освобождение памяти и работа с 2 указателями на массив
Пользователь вводит числа, которые поступают в массив. Длина массива неизвестна, а использовать...

10
20 / 20 / 6
Регистрация: 16.11.2017
Сообщений: 87
07.01.2018, 18:21 2
Кстати я тоже не знаю как работают программы вроде ArtMoney. Почему они могут свободно писать в память других процессов, вроде бы это запрещено на уровне ОС, если не ошибаюсь.
0
"C with Classes"
1581 / 1360 / 511
Регистрация: 16.08.2014
Сообщений: 5,647
Записей в блоге: 1
07.01.2018, 18:25 3
WhiteChemist, pewit, присоединяюсь к вопросу
0
Эксперт .NET
6229 / 3864 / 1558
Регистрация: 09.05.2015
Сообщений: 9,134
07.01.2018, 18:26 4
Цитата Сообщение от pewit Посмотреть сообщение
Кстати я тоже не знаю как работают программы вроде ArtMoney. Почему они могут свободно писать в память других процессов, вроде бы это запрещено на уровне ОС, если не ошибаюсь.
OpenProcess/ReadProcessMemory/WriteProcessMemory специально для этих целей создавались...
1
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
07.01.2018, 18:34 5
WhiteChemist, указатели освойте для начала. Адресное пространство (возможные номера ячеек, диапазон) в современных операционных системах у программ виртуальное, создающее иллюзию, будто она единственная этой памятью пользуется. То есть, если одна программа записывает по адресу 0x02bd2, а другая из него читает - она вовсе не получит значение, записанное первой (это при условии что они не упадут, т.к. адрес их адресному пространству может просто не принадлежать). Для каждого процесса (представление работающей программы в ОС) имеется таблица, описывающая, каким образом его виртуальные адреса отображаются в физические (или, к примеру, на диск). Трансляцию выполняет железо (MMU). Однако операционные системы предоставляют интерфейс к работе с физической памятью, на UNIX это к примеру /dev/mem.
0
298 / 207 / 174
Регистрация: 11.05.2016
Сообщений: 655
07.01.2018, 18:36 6
А вот, к примеру, в vs2010->tools
есть такое "attach to process"
это зачем и как работает?
0
20 / 20 / 6
Регистрация: 16.11.2017
Сообщений: 87
07.01.2018, 18:37 7
Это же, мягко говоря, не безопасно писать в чужие процессы, меняя данные можно вызвать желаемое или непредсказуемое поведение другой программы, а если таким образом можно и код чужой программы менять - совсем беда. Должны же быть какие-то ограничения.
0
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
07.01.2018, 18:42 8
pewit, естественно имеются разграничения привилегий и средства защиты (https://msdn.microsoft.com/ru-... s.85).aspx).
0
298 / 207 / 174
Регистрация: 11.05.2016
Сообщений: 655
07.01.2018, 18:45 9
по работе ArtMoney: емнип, там нельзя было сразу взять и изменить что нужно, оно как бы находило и отображало некоторые переменные в процессах, но чтоб найти то что требуется нужно было действовать методом исключения, изменяя что-либо в самой работающей программе и наблюдая последующую корреляцию в ArtM..
Так что волшебства тут особого нет
0
0 / 0 / 0
Регистрация: 16.11.2016
Сообщений: 86
07.01.2018, 19:08  [ТС] 10
Про волшебство речи не было. Вопрос был в том что хотя бы вывезти определенное кол-во адресов и их значений. Я сейчас пытаюсь с помощью указателей прогнать адреса. Но проблема в том что надо создавать большое кол-во переменных чтобы перелопатить много адресов. Для начала я не программу хочу на адреса раскрутить а например компьютерную память. Что в его ячейках имеется. А потом уже от этого отталкиваясь можно на программу пересесть.

Добавлено через 2 минуты
Цитата Сообщение от Someone007 Посмотреть сообщение
OpenProcess/ReadProcessMemory/WriteProcessMemory специально для этих целей создавались...
а что это за звери такие? В плюсах таких функций не нашел.
0
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
07.01.2018, 19:11 11
WhiteChemist, WinAPI.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2018, 19:11
Помогаю со студенческими работами здесь

Указатели, динамическое выделение памяти, работа с файлом
Программа должна предоставлять возможность нескольким пользователям работать с числовыми данными....

Работа со стеком. Исправить функцию удаления памяти
Нужно исправить функцию удаления стека из памяти. Когда доходим до нее, программа аварийно...

Работа с массивами с использованием выделения динамической памяти
Помогите решить вот такие задачи: Задача №1 Дана последовательность чисел b1,...,bn. Получить...

Работа и распределение памяти структуры, функция поиска мин эл
Сначала написал просто код, который смог бы работать с любым типом массивом. #include "stdafx.h"...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru