![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Клонировать процесс в Windows [D5, Win2k]
Fktrc © (2005-01-13 08:07:00)Возможно ли это? Если да, то где про это можно прочитать?
Fktrc (2005-01-13 11:49:00) [21]Да, и не забыть "разморозить" оригинал :)
Fktrc (2005-01-13 11:48:00) [22]Что очень и очень сложно - это ясно, к примеру клон не будет иметь доступа к объектам ядра, иногда к файлам(зависит от режима открытия), и т.д., которые заняты оригиналом, все же это, хотя и полная копия, но все же отдельный от оригинала процесс.
Тот же самый клонированный ворд при попытке сохранения файла, открытого в первом как минимум вывалит ошибку, как максимум вывалится сам :)
Но было бы очень любопытно посмотреть на пример клонирования консольного Hello world. Нахватавшись верхушек, могу предположить, что для этого потребуется выделить память под код и данные, как-то заморозить все потоки клонируемого процесса, скопировать код и данные в выделенный буфер, изменить адреса согласно relocation table, если модуль окажется загружен по другому базовому адресу, установить режим доступа PAGE_EXECUTE для страниц памяти, куда у нас попадет код, и соотв. режим для страниц с данными, кучу дополнительных действий, о которых просто не в курсе, и в конце что-то типа установки EIP для клонированного процесса на ту же инструкцию, что и в оригинале.
Где-то я читал, что при запуске того же исполняемого файла второй раз код из него не читается, читаются только данные и грузятся в другие блоки памяти. Тогда код копировать и не потребуется...
Ну вот и вывалил все, что удалось разглядеть за туманом некомпетентности в этом вопросе. Хорошо бы рассеять туман...
Digitman (2005-01-13 11:41:00) [23]
> Fktrc © (13.01.05 10:56) [4]
как и предполагалось, ты точно не тот огород окучивать собрался ..
> Типа у нас запущен Word
ТИПА Word или конкретно Word ?
зачем, спрашивается, "клонировать" вордовый процесс, если решение задачи сводится к простейшим действиям :
- старту нового Ворда как олей-сервера
- коннекту к уже работающему Ворду как олей-серверу
- определение текущих настроек и рабочего контекста открытых документов в "старом" Ворде
- программное воспроизведение настроек и контекстов в "новом" Ворде
Игорь Шевченко (2005-01-13 11:06:00) [24]
> второй ворд на экране, причем точная копия первого и даже
> курсор в том же месте текста мигает...
Это нельзя. Точнее, очень и очень сложно
Fktrc (2005-01-13 10:56:00) [25]Смысла нет никакого - захотелось узнать, возможно ли склонировать процесс под виндами.
Типа у нас запущен Word, мы его клонируем и хоп! второй ворд на экране, причем точная копия первого и даже курсор в том же месте текста мигает...
Тяжкие последствия вчерашнего праздника... :)
Digitman (2005-01-13 10:42:00) [26]
> Fktrc © (13.01.05 10:20) [2]
каков же глубокий смысл подобного "клонирования" в Win32 ?
прокомментируй ..
Fktrc (2005-01-13 10:20:00) [27]2Digitman
подобие fork() из Unix
Digitman (2005-01-13 08:52:00) [28]что подразумевается под клонированием ?