Вверх ↑
Этот топик читают: Гость
Ответов: 1043
Рейтинг: 33
#1: 2014-11-05 18:41:52 ЛС | профиль | цитата
Собственно сабж.
Как в компоненте правильно указывать смещение? надо например получить данные из памяти от начала и до конца ( всю область памяти выделенную под конкретный процесс )

_mempatch 1.2.rar
карма: 0

0
Ответов: 4631
Рейтинг: 749
#2: 2014-11-05 18:46:59 ЛС | профиль | цитата
А зачем нужно прочитать всю память от начала и до конца?
карма: 26

0
Ответов: 1343
Рейтинг: 31
#3: 2014-11-05 18:51:48 ЛС | профиль | цитата
Netspirit писал(а):
А зачем нужно прочитать всю память от начала и до конца?


ДАМП!

карма: 2

0
Ответов: 4631
Рейтинг: 749
#4: 2014-11-05 18:53:46 ЛС | профиль | цитата
А мне кажется - поиск...
карма: 26

0
Ответов: 1043
Рейтинг: 33
#5: 2014-11-05 18:55:53 ЛС | профиль | цитата
Rysik, так точно)))
------------ Дoбавленo в 19.55:
Одна программа для аварийного дампа.
Другая, заезженная для поиска... что то типа artmoney
------------ Дoбавленo в 19.55:
Netspirit, Вы тоже угадали
карма: 0

0
Ответов: 1343
Рейтинг: 31
#6: 2014-11-05 18:57:19 ЛС | профиль | цитата
ashkalov писал(а):
Как в компоненте правильно указывать смещение?


врядли этот компонент справится (ну если делать дамп мелкой программки то думаю потянет, а если уж игрушки 3D итд то врядли) , а указывать так:

code_34557.txt

в результате:
начало 401000
конец 402000
то есть пишем 1000 байт надо считать из памяти
адрес(смещение) указываем в HEX
количество байт указываем в integer
карма: 2

0
файлы: 1code_34557.txt [369B] [150]
Ответов: 1841
Рейтинг: 369
#7: 2014-11-05 19:01:24 ЛС | профиль | цитата
Я без понятия, что там и как реализовано в указанном компоненте, но, последовательность действий для получения дампа, примерно следующая:
Нуф-нуф писал(а):

1) Получаем системную инфу о железе и ОС через API GetSystemInfo. Наиболее интересной здесь является инфа о доступном адресном пространстве и о размере страниц памяти.
2) Создаем карту памяти процесса (модули, стеки, свободная и используемая память (кучи) и т.п.). Делается это при помощи ToolHelp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/tool_help_library.asp и VirtualQueryEx;
3) На основе данной карты выбираешь те куски памяти, которые имеешь желание "дампировать" и копируешь их в свой процесс через API ReadProcessMemory;
4) С копией делаешь чего хочешь - в данном случае отображаешь дамп.


карма: 1
0
Ответов: 1043
Рейтинг: 33
#8: 2014-11-05 19:04:05 ЛС | профиль | цитата
Rysik писал(а):
начало 401000

указал в качестве смещения, а в ответе получил "шиш с маслом"
------------ Дoбавленo в 20.04:
CriDos, не дружу я с Win API
карма: 0

0
Ответов: 1343
Рейтинг: 31
#9: 2014-11-05 19:07:36 ЛС | профиль | цитата
ashkalov писал(а):
указал в качестве смещения, а в ответе получил "шиш с маслом"


эм...

ахах что тебе надо то, конкретно, полный дамп, дамп статических регионов? дамп определённой области?
карма: 2

0
Ответов: 4631
Рейтинг: 749
#10: 2014-11-05 19:08:43 ЛС | профиль | цитата
Да, именно так. Память для процесса выделяется блоками, кратными размеру страницы в памяти. Блоки имеют набор атрибутов (например, свободная/занятая, для чтения/записи/выполнения).

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

0
Ответов: 1043
Рейтинг: 33
#11: 2014-11-05 22:38:28 ЛС | профиль | цитата
Rysik писал(а):
ахах что тебе надо то, конкретно, полный дамп, дамп статических регионов? дамп определённой области?

В первом посте уже все написал
------------ Дoбавленo в 23.38:
ну да ладно, передумал я заниматься этим бесполезным делом
карма: 0

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)