|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 14, 2003 22:45:09 Хотелось бы выяснить, какие участки памяти при исполнении win32-программы удовлетворяют двум условиям: 1. Гарантированно доступны для записи в любой момент времени работы процесса 2. Не очень сильно изменяются во время работы программы. Что нужно: записать несколько байт в какой либо участок памяти, а затем через несколько секунд их оттуда прочитать (точнее исполнить). Была идея использовать участок PEB (так как его адрес всегда фиксирован), а также TEB для первого-второго потока (если известно, что программа имеет такое минимальное кол-во потоков). Хотел бы услышать комментарии по поводу точного размещения PEB, TEB и их размеров, а также того, какой участок этих структур можно перезаписать безопасно? Также возможна ли перезапись других участков? |
|
|
Дата: Ноя 14, 2003 23:06:22 Писать нужно в адресное пространство своей программы, в конец секции, там где есть для этого свободное место. |
|
|
Дата: Ноя 15, 2003 00:20:16 Писать что? Как? Слов много, толку мало. по поводу точного размещения PEB, TEB Опять-таки, слов много, толку мало. Точный адрес TEB берется из fs:[0] - NT+. Точный размер TEB/PEB колеблется и для 2k/XP он различен - см. файлы из секции "Уголок NT+", что в инструментах. Какой участок можно перезаписать безопасно - опять, блин. Структуры недокументированны! Откуда мы знаем к каким полям идет доступ, а к каким нет? Экспериментально проверяй. Смотри. Убери, к примеру, указатель на PEB и посмотри, что упадет. В таком ключе... |
|
|
Дата: Ноя 15, 2003 00:21:36 Писать нужно в адресное пространство своей программы Совершенно верно. в конец секции Эт-то как? Эт-то еще зачем? Откуда сие выдрал? |
|
|
Дата: Ноя 15, 2003 00:25:19 · Поправил: Asterix Эт-то как? Эт-то еще зачем? Откуда сие выдрал? Что значит выдрал. Писать нужно в те нули которые называются "выравнивание" ;-). |
|
|
Дата: Ноя 15, 2003 00:31:51 Asterix А ЗАЧЕМ туда писать 8-() |
|
|
Дата: Ноя 15, 2003 00:41:02 volodya Я про чужую программу, а ты про что? А если мне в расчётах нужны промежуточные данные? Я так dll'ку пакованную PECompact патчил ;-) |
|
|
Дата: Ноя 15, 2003 00:45:56 Что-то мне поплохело. Ничего я не понял. Если мне нужна память - я запрашиваю ее у оси через VirtualAlloc - теперь у меня есть отмапленые странички виртуальной памяти на моем процессе - и я их использую. Все. А зачем что-то в собственные секции в памяти писать - это выше моего разумения. Согласен, если прога чужая - ну, ищи да пиши. А ЗАЧЕМ? Чтобы код свой внедрить, что ли? Ты это имеешь в виду? |
|
|
Дата: Ноя 15, 2003 01:03:53 Что-то мне поплохело. Ничего я не понял. Если мне нужна память - я запрашиваю ее у оси через VirtualAlloc - теперь у меня есть отмапленые странички виртуальной памяти на моем процессе - и я их использую. Все. А зачем что-то в собственные секции в памяти писать - это выше моего разумения. Это ты в своей программе, само собой понятно хозяин-барин. Но в чужой.. А ЗАЧЕМ? Чтобы код свой внедрить, что ли? Ты это имеешь в виду? Да нет я свой код и в HiEW впишу, а если нужно что-то посчитать в рантайме и вписать куда-нибудь в "безопасное место" ;-), а потом на это что-то из другого места проги будет ссылка. |
|
|
Дата: Ноя 15, 2003 05:05:09 Asterix Слушай, боюсь, и мне тоже непонятно :) если нужно что-то посчитать в рантайме и вписать куда-нибудь в "безопасное место" ;-), а потом на это что-то из другого места проги будет ссылка" Какая ссылка, откуда, если прога ЧУЖАЯ ? Однако если ты будешь производить подсчет в рантайме - то у тебя как минимум будет свой поток, а может, и процесс. И там есть безопасное место - стек. Отдает бредятинкой, честное слово... |
|
|
Дата: Ноя 15, 2003 06:15:15 [ Grenader: Отдает бредятинкой, честное слово...] Ну, во-первых, не хамить старшим :-) Во-вторых, когда речь идёт о чужой проге то в данном случае я подразумеваю взлом или исправление багов, это кому как нравится называть. В-третьих я говорил про рантайм патч запакованной dll'ки, пакером с элементами полиморфа,который ясно имеет некоторые особенности в отличие от exe ;-) В-четвёртых, лень объяснять несведущим :-) |
|
|
Дата: Ноя 15, 2003 06:27:09 Asterix Просто ты не упоминал "про рантайм патч запакованной dll'ки, пакером с элементами полиморфа" - отсюда и вывод про бредятинку. Народ у нас телепатии ведь не обучен :) Ну, и про четвертый пункт - если ты хочешь, что бы тебя поняли - то придется объяснить. Иначе - "Эт-то как? Эт-то еще зачем? " |
|
|
Дата: Ноя 15, 2003 06:31:12 Эээээ, я упоминал про dll'ку пакованную PECompact'ом, этого достаточно. Объяснять тут нечего, кто сталкивался тот знает ;-) |
|
|
Дата: Ноя 15, 2003 06:31:18 einstein Тут сплошной оффтопик пошел - но вот мысли по поводу памяти: переменные окружения - может, здесь копнуть? Изменяться в процессе выполнения программы не должно, ерунды там тоже прилично... |
|
|
Дата: Ноя 15, 2003 06:35:15 Asterix Угу, а кто нет - значит, срочно учить, что есть PECompact? :) Ладно, ведь из-за ерудны-то спорим. Теперь все выяснили. Да? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.124 |