Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как сделать Дамп Процесса?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Как сделать Дамп Процесса?
Имя
Сообщение << Старые топики   Новые топики >>
Как сделать Дамп Процесса? - 2008-12-04 18:13:13.143333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Сабж.. желательо на C# ну или на С++.
Заранее спасибо!
Post #: 1
RE: Как сделать Дамп Процесса? - 2008-12-04 18:37:00.436666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Левого или твоего процесса?

Может проще отладчиком воспользоваться?
Post #: 2
RE: Как сделать Дамп Процесса? - 2008-12-04 19:01:43.023333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Ну ок, обьясню…
Открываем диспетчер задач -> Правой кнобкой на прцессе, -> Создать файл дампа памяти
И у нас далеко в недрах диска C: появляется файл дампа.

Или

Открываем PE Tools
жмем (если не ошибаюсь) ctrl+d

Как можно добиться такого результата программно?
Post #: 3
RE: Как сделать Дамп Процесса? - 2008-12-04 19:11:08.416666   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
1) Необходимо узнать имя файла процесса
2.) Открыть файл процесса для чтения
3) Прочитать dword по смещению 3ch относительно начала файла, это будет смещение PE (offset PE)
4) Сместится относительно начала файла на offset PE, теперь стоим на PE :) сместится еще на 34h байта и прочитать dword, это будет ImageBase
5) Сместится относительно PE на 50h байт и прочитать dword, это будет SizeOfImage
6) Теперь открываем процесс и считываем начиная с адреса ImageBase и размером SizeOfImage
7) Сохраняем все в файл

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



Post #: 4
RE: Как сделать Дамп Процесса? - 2008-12-04 19:53:19.276666   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Спасибо.. +1

А может легче найти исходник того же PE tools и выкрасть часть кода?
Или посоветуйте где на эту тему почитать или исходник взять… Заранее благодарю
Post #: 5
RE: Как сделать Дамп Процесса? - 2008-12-04 20:10:39.580000   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
В том же PE Tools есть Procs32.dll, в ней куча готовых полезных функций. Разберись с ними и юзай Procs32.dll в своем проекте.

GetProcessPath
GetProcessBaseSize

Post #: 6
RE: Как сделать Дамп Процесса? - 2008-12-04 20:26:51.743333   
SkaYneT

Сообщений: 43
Оценки: 0
Присоединился: 2007-07-27 13:11:06.706666
http://slil.ru/26401497 - сорцы
Post #: 7
RE: Как сделать Дамп Процесса? - 2008-12-05 00:13:38.883333   
LolLolLolHahaha

Сообщений: 155
Оценки: 0
Присоединился: 2008-03-22 18:21:23
Спабио огромное, буду пробовать… Завтра отпшусь ;)
Post #: 8
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Как сделать Дамп Процесса?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.