Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Помогите советом по DebugAPI и архитектуре Windows   Найти похожие ветки 

 
Leoton ©   (2004-02-21 00:15) [0]

Направте на путь истенный.
Возможно ли усыпить процесс, а через некоторое время сново оживить (комп. при этом выключается). Своеобразный Спящий режим, но только для одного процесса (постороннего(!)).
Идея простая до безобразия:
Процесс ловится на отладку и вся его оперативка записывается в
файл, предворительно производится полный просмотр и запись всех его хендлов (окон и кнопок) и имен классов этих окон.
(Промежуточный вопрос: Хендлы процесса хранятся в пространстве памяти проги?) При оживлении, запускаем EXE"шник и сново останавливаем, пытаемся переписать всю его оперативку и чето тварим с хендлами. После чего отправляем в свободное плавонье (по крайне мере для WinXP/.NET есть хор. функция отвязки от отлаживаемого процесса DebugActiveProcesStop). Зарание, списибо.
Пишите на мыло свои мысли по этому поводу. Буду радоваться каждому письму:)


 
Ihor Osov'yak ©   (2004-02-21 01:55) [1]

Нет, это не путь истинный.. Это путь, ведущий никуда..

Подумай только - за каждым хендлом стоит какой-то обьект, довольно часто - обьект ядра.. Ну восстановишь ты дамп процесса, а дальше то что, с этими хендламы? Куда их связывать, если обьектов то нету (к примеру, файлики там всякие, мьютексы, етс).. А если и есть, то как  связать?
Еще.. Адрессное пространство всех процессов в режиме ядра общее, и далеко не хвакт,  что состояние этого простраyства на момент "заморозки" и на момент "разморозки" будет одинаковым.. Вернее совсем хвакт, что не будет одинаковым..

И это только то, что на поверхности..

пс.
> Промежуточный вопрос: Хендлы процесса хранятся в пространстве памяти проги?)

Промежуточный ответ - да. Но с этого ничего не следует, так как хендл - некий абстрактный номер, по которому ядро определяет что в действительности за этим хендлом стоит (естественно, "это" уже раньше ядром создано)...


 
CMPXCHG8 ©   (2004-02-21 03:27) [2]

В принципе возможно, но тогда придется отлавливать создание всех объектов, запоминать их состояние и проч. проч. И при "пробуждении" восстанавливать их. Т.е. Прога создала окно - отловить событие запомнить параметры, а пытаемой программе вернуть хендл, который жестко будет фиксирован, т.е. подменен этим чудо-одладчиком. Вместо объектов системы давать ссылки на объекты отладчика. Но это слишком трудоемкая работа.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1081247825
k@k
2004-04-06 14:37
2004.04.25
SideBar


1-1081177958
Dzhon
2004-04-05 19:12
2004.04.25
Как в RunTime получить список всех свойств компонента?


3-1080621889
race1
2004-03-30 08:44
2004.04.25
autoupdate


1-1081251256
Dimitry
2004-04-06 15:34
2004.04.25
Запрет ввода некоторых символов в Edit


3-1080389025
Новичек2
2004-03-27 15:03
2004.04.25
TDBAdvStringGrid и выравнивание по вертикали.