|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
|
Работа с памятью, для совсем новичков в этом деле19.04.2019, 01:29. Показов 2924. Ответов 12
Добрый день.
Стало интересно, разобраться как работать с памятью процессов, чтение, запись, поиск и так далее. Допустим запущен у меня калькулятор, в нем какое-то число, как мне его найти в памяти, как преобразовать в читабельные значения(выводя в консоль), основы типов для работы с памятью, хорошие темы про какие-то "побитовые" сдвиги и прочее. С чего начать, что прочитать, что освоить. Для меня это совсем темный лес...эти двоичные значения и прочее...всякие кракозябры типо 4D 5F EE 1E 4D. Хочу работать с памятью из C# через WinAPI. Если Вы уже знаете эту тему, то если не сложно, дайте примерный порядок изучения этого, что бы как можно было меньше пробелов в понимании. Буду очень признателен, спасибо большое. Добавлено через 10 минут Допустим ,как работает ArtMoney. Он ищет эти значения, показывает их и так далее...хочу разобраться, как это все происходит, какой-нибудь пример, если у Вас есть(если возможно с объяснениями). Самому что-то похожее написать, что бы лучше понимать.
0
|
|
| 19.04.2019, 01:29 | |
|
Ответы с готовыми решениями:
12
Новичок в этом деле Меню сайта!Я новичок в этом деле:( |
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 19.04.2019, 01:36 | |
|
ArtMoney и подобный софт использует стандартные WinAPI типа ReadProcessMemory/WriteProcessMemory/VirtualQueryEx и т.д.
По ним куча инфы в интернете в т.ч. и тут на форуме.
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
||
| 19.04.2019, 02:16 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
|
| 19.04.2019, 12:48 [ТС] | |
|
Если бы сразу нашел, то вероятно не спрашивал бы тут. Хороших примеров, которые бы дали ответы на мои вопросы не нашел. Я прекрасно понимаю, что нужно будет работать с WinAPI, выше это писал. Я попросил хороших статей, книг, советов, примеров, а не посыла искать дальше
Примерно понимаю, что нужно получить хэндл окна, по нему взять либо дескриптор процесса(возможно тут не прав. МНе же наверно еще надо будеть разобраться где искать в стеке или в куче....плаваю в этой теме, нет четкого понимания.) и вот тут начинается самое интересно - что я ищу, как искать, как преобразовать, как получить корректное значение.Спасибо конечно за совет, продолжить искать, но это не совсем то, на что я надеялся. Я же не прошу готовую программу или прочее, прошу помочь с поиском материала, который даст понимание как с этим работать.
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 19.04.2019, 15:40 | |
|
Я не понимаю что вам мешает самостоятельно найти инфу. Тема популярная, материалов достаточно, их не сложно найти.
Такое впечатление, что вы как раз не хотите ничего изучать, а хотите чтобы вам подготовили и обочначили строчки которые надо прочитать в массе разрозненных материалов, чтобы достить решения такой специфической задачи. Ну ок, ждите.
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
|
| 19.04.2019, 16:04 [ТС] | |
|
Зачем мне строчки кода, в которых я не смогу разобраться. В том то и дело, что есть эти строчки кода, но описание к ним скудное, мне не копи паст нужен. Я хочу понять. То что Вам кажется вполне понятным, мне кажется вообще черной дырой, к которой я не знаю, как подступиться. Если Вы смогли с этим разобраться разве сложно было бы дать план в какой последовательности, что читать!? Допустим: 1)По своему опыту скажу что лучше начать с этого , тут рассказывается про это, как устроена память, что у каждого процесса своя область памяти и т.д 2) Посмотри вот на такие нюансы. и тд и тп, это отсечет дальнейшие вопросы в такой области.
ну раз у вас нет мыслей, как помочь, можно тогда и не писать "Иди ищи, полно инфы". Вот одна из таких тем, которая вылезла при поиске: Небезопасный код, многоуровневая адресация - каково их назначение Базовые адреса ESI +18 и тд и тп....что это, откуда это все берется, где начало где конец, что прочитать? Где Вы нашли ответы на эти вопросы? Что бы получить какую-то целостную картину нужна последовательность. Из всего, что я читаю у меня только больше каши в голове скапливается, все накладывается друг на друга и понимания не прибавляется. Поэтому прошу помощи. С чего начать и куда двигаться.
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 19.04.2019, 16:34 | |
|
А все потому что вы думаете что можно без фундаментальных знаний подступиться к этой теме.
Уверен что совет начать с книги по ассемблеру вам не понравится. Добавлено через 5 минут И нет, мне не кажется конкретно эта тема вполне понятной. Просто имея фундаментальные знания (не из форумов, а из книг) я примерно могу прикинуть в какую сторону копать, чтобы решить эту задачу.
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
||||||
| 19.04.2019, 18:16 [ТС] | ||||||
|
Так вот я и прошу сказать мне что читать. Если совет начать с книги по ассемблеру, значит я начну с нее, подскажите какую. Я же к этому и писал, что мне нужны эти знания, что бы понимать что к чему. Есть тонны примеров, они все различаются, все наполнены определенными понятиями и прочими умными словами, которые я не понимаю. Переписывать каждый пример не дает конкретного понимания, что я делаю. Какой результат должен быть? А правильно ли? Этот пример не заработал, другой заработал, почему? А что я вообще делаю то? Зачем я использую VirtualQueryEx? Почему после этого я делаю ReadProcessMemory? Что за регион я получаю этим VirtualQueryEx? Очень много вопросов на которые есть ответы, но без фундамента они не понятны.
Добавлено через 6 минут
Пока понимание есть такое: У каждого процесса есть своя область памяти. Данные в памяти, которые мне потребуются начинаются с адреса 0x00010000(понимание адреса тоже очень расплывчатое, не совсем понимаю всю эту адресацию, это ,если я верно понимаю, номер байта, поправьте меня если не прав). У каждого процесса есть стек и есть куча. Зачем тогда VirtualQueryEx если можно просто считать память с определенного адреса через ReadProcessMemory (хендл_процесса, 0x0010000, буфер, размер, количество_считаных_байтов)......как узнать размер.......Все из-за нехватки базовых знаний ![]() Добавлено через 7 минут Так же не совсем понимаю зачем OpenProcess если процесс уже открыт
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 19.04.2019, 19:31 | |
|
VirtualQueryEx получает адреса, размеры (и другую информацию, о которой написано в документации) всех страниц памяти процесса. Если вам известен адрес, то вполне логично что использовать VirtualQueryEx не нужно (ну разве что чтобы убедиться что адрес на самом деле попадает в одну из страниц памяти выбранного процесса).
OpenProcess получает Handle процесса, если он у вас уже есть то вполне логично что вызывать OpenProcess не нужно...
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
|
| 19.04.2019, 21:25 [ТС] | |
|
Спасибо большое за развернутый ответ.
Вопрос: Вы сказали "все страницы памяти процесса". Если я верно понимаю, то процесс в памяти может занимать не все пространство подряд, и каждый кусочек памяти, который он занимает - это и есть страница?
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
||
| 19.04.2019, 21:39 | ||
|
И вот еще статейка с примерами C# How to Scan a Process' Memory
1
|
||
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
|
| 19.04.2019, 22:07 [ТС] | |
|
Спасибо еще раз!
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 7
|
||||||
| 20.04.2019, 01:38 [ТС] | ||||||
|
Запустил данный код, разобрался с проблемой в разрядности системы, и в дамп вроде все попало, но видимо проблема с кодировкой....и вот тут я не совсем понимаю, что делать. Помогите пожалуйста, как это исправить.
Опять же я не прошу решения, прошу помощи с пониманием в какую сторону смотреть для решения проблемы.
0
|
||||||
| 20.04.2019, 01:38 | |
|
Помогаю со студенческими работами здесь
13
Зацените пожалуйста сайт:)))я новичек в этом деле. нужен совет. я в этом деле полный ноль)) работа с реестром не для новичков задача! Работа для новичков(очень нужен совет) Работает поисковик, но не так как нужно. В этом деле начинающий, очень тяжело разобраться. Буду благодарен всем Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|