|
|
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Вопрос к сведущим — подскажите, плиз, как получить указатель или другим образом считать виртуальную память некоего процесса (известен PID) в ХР/2000. Интересует область кода процесса — text. Заранее благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 16:46 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Я не специалист по чтению памяти процесса в винде с использованием С. Но вот вопрос: а произвёл ли тот процесс что-то, чтоб разрешить другим читать? Просто в Линухе такая тема есть. Один процесс память предоставляет и пишет туда свои переменные. Другой её присовокупляет и использует в своих целях. Короче процессы срастаются памятью:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 17:06 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Moisha NecromantovichВопрос к сведущим — подскажите, плиз, как получить указатель или другим образом считать виртуальную память некоего процесса (известен PID) в ХР/2000. Интересует область кода процесса — text. Заранее благодарен за помощь. Если не свой процесс - то толковый пример был у Рихтера "Windows для проффесионалов". В примере кусок Вашего кода инжектировался в адрессное пространство другого процесса. Если свой - то (в принцепе там же рассмотренно кажись) - шаред мемори. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 17:11 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Процесс чужой, нужен его раздел виртуальной памяти, где хранится загруженный код. Этот код надо просто прочесть и все, ничего в нем не меняя. Нет, не shared memory из линукса, а именно в винХР. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 18:26 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
А какова цель этих изысканий? Может проще бинарник разобрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 18:50 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Какерством тут пахнет:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 19:34 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Я се очень живо представляю область применения: атака на слабо защищённую прогу, которая просит пользователя ввести пароль. А как идея то красива! Ведь введённый пароль по крайней мере некоторое время будет располагаться в области памяти программы. И если программист не предусмотрел такую фишку, то всегда по одному и тому же смещению относительно начала области проги. Лепота!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 19:37 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Можно использовать крюки (hooks) при этом если крюк глобальный, то товоя dll-ка подключается к каждому процессу в системе. поидее т.к. они в одном процессе, проблем с доступом к памяти быть не должно. авторЯ се очень живо представляю область применения: атака на слабо защищённую прогу, которая просит пользователя ввести пароль. Вообще крюки сделаны для перехвата событий процессов - можно получать все нажатия клавиш например или перемешений мыши, причем можно все это изменять до подачи главной проге. Посмотри SetWindowsHookEx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 21:11 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Я возился с хуками в Делфе. Это очень сильный и почти всемогущий механизм. Но я с трудом себе представляю, как с их помощью читать произвольную область памяти произвольного процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 21:21 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Т.к. глобальные хуки подключают длл-ку с хуком к каждому процессу в контенте этого (чужого) процесса, думаю там уже дело остается только за получением нужного адреса ( хотя на практике этого сам не делал - работал с хуками по человесески - только перехват сообщений) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2005, 21:48 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
SarinЯ возился с хуками в Делфе. Это очень сильный и почти всемогущий механизм. Но я с трудом себе представляю, как с их помощью читать произвольную область памяти произвольного процесса. У Рихтера описано. DLL проецируется в АДРЕСНОЕ ПРОСТРАНСТВО целевого процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 08:16 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)...У Рихтера описано. DLL проецируется в АДРЕСНОЕ ПРОСТРАНСТВО целевого процесса. не слышат они... Выше уже дал им ориентир. Велосипед изопретают...ик.. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 12:50 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Ага, не читатели этт точно :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 12:53 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Еще про кольца защиты не говорили. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 13:12 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Спасибо за наводку - открываю файл OpenProcess, потом получаю его айди, как бы дальше мне получить инфу о его адресном пр-ве (размер занимаемой вирт. памяти, адрес ее начала, в идеале - сколько под код отведено, где начинается код). Попытаюсь унять любопытство - область применения - не вирусы, а наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:05 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Сразу оговорюсь, что если Мойша - не суперпользователь, то ему будет противостоять вся система безопасности Windows. Это ключевой момент в предемете дискуссии. Рихтер, тыча пальцем в уязвимостях винды публикует сорсы, где он обходит некоторые рубежи безопасности. Опять-же со ссылкой на профессионализм самого обходящего и наличием у оного необходимых прав. Ижнекция, смена кольца защиты и т.п. - это все методы, которые требуют достаточного количества времени и подготовки. А стоит ли результат таких усилий? Если вы сисадмин в сети - то у вас в наличии полный арсенал клав. сканнеров и пр. зловредных погремушек. Если вы разработчик - берите в зубы SoftIce или IDA и разбирайте бинарник на атомы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:21 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Внедрение в чужой процесс: OpenProcess, WriteProcessMemory,CreateRemoteThread . При этом необходимы привилегии SeDebugPrivilege (отладка программ). В процессе Чужом создается поток, который выполняет необходимые нам действия (перехват или чтение данных). ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:26 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Мойша - суперпользователь - это раз. И процессы выполняются на этой же машине - это два. Так что ремоттреад мне не надо. Я хочу узнать размер image программы в памяти и то, где он, этот имэдж начинается, при том что у меня есть хендл этого процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:53 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Moisha Necromantovichпроцессы выполняются на этой же машине ... Так что ремоттреад мне не надо. Моя плакать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 17:56 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Ну извините, лажу видимо сморозил. Ну не работал я с этим никогда, блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 18:14 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Рихтера почитай, иначе объяснять что-то бесполезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 18:16 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Вы меня наверное не поняли. Мне нужно считать область кода УЖЕ ЗАГРУЖЕННОГО ЗАПУСКНОГО ФАЙЛА. Скажем, получить ее в массиве char* в итоге, как когда мы файл с rb читаем. Неужели это так сложно? Ремоттреад позволяет менять переменные в функциях выполняющегося процесса, как я понимаю, а мне нужно получить образ его в памяти, область .text PE-файла, как хотите. Просто сыро взять и получить шмат бинарной инфы, в которой содержится код запущенного процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 18:21 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Разбирайся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 18:26 |
|
||
|
Чтение виртуальной памяти другого процесса
|
|||
|---|---|---|---|
|
#18+
Дааа, работает, но только для моего процесса, а для другого (когда я ставлю VirtualQueryEx(hProcess, ...), hProcess - получено из OpenProcess) нифига не пишет и возвращает ноль на фиг. Я уже себе и привилегии дебага через OpenProcessToken и AdjustTokenPrivileges выбил - все напрасно, ничего VirtualQueryEx не читает.... Что я сделал неправильно? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2005, 20:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33252745&tid=2032813]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 414ms |

| 0 / 0 |
