Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замораживание всех потоков чужого процесса 
:(
    Опции темы
En_t_end
Дата 5.9.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Вообще такое возможно ?
Если да, то можно ссылку на MSDN. Я к своему стыду не смог составить запрос максимально достоверно smile
PM MAIL ICQ Skype GTalk Jabber   Вверх
JoyEx
Дата 5.9.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



М.б. спасет Thread32First() - Thread32Next() ?


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
En_t_end
Дата 5.9.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



JoyEx
Допустим...
Код

typedef struct tagTHREADENTRY32{ 
  DWORD  dwSize; 
  DWORD  cntUsage; 
  DWORD  th32ThreadID; 
  DWORD  th32OwnerProcessID; 
  LONG   tpBasePri; 
  LONG   tpDeltaPri; 
  DWORD  dwFlags; 
} THREADENTRY32; 
typedef THREADENTRY32 *PTHREADENTRY32; 

И как же мне получить Хендл треда, чтобы его суспензить ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
JoyEx
Дата 5.9.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 4
Всего: 12



Внедриться в процесс и OpenThread (,, th32ThreadID)



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
En_t_end
Дата 6.9.2005, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Цитата(JoyEx @ 5.9.2005, 22:44)
Внедриться в процесс и OpenThread (,, th32ThreadID)

То есть писать dll которая бы подключалась к чужому процессу в виде отдельного потока ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
p0s0l
Дата 6.9.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата
То есть писать dll которая бы подключалась к чужому процессу в виде отдельного потока ?
Не, это не нужно smile
Просто делай OpenThread (THREAD_SUSPEND_RESUME, ... ) чужого потока + SuspendThread... Также нужно установить привилегию отладки, если тебе нужно останавливать потоки системных процессов...


--------------------
С уважением, г-н Посол.
PM   Вверх
En_t_end
Дата 6.9.2005, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



p0s0l
Цитата(p0s0l @ 6.9.2005, 13:13)
Также нужно установить привилегию отладки

Ну для этого надо ещё права на это иметь.
Добавлено @ 10:03
А как на счет ICOMAdminCatalog2 - правда работать будет только от WinXp и выше, но зато там целый класс по технологии COM+ для управления процессами.
PM MAIL ICQ Skype GTalk Jabber   Вверх
p0s0l
Дата 6.9.2005, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



На счет прав... Думаешь ICOMAdminCatalog2 будет работать без нужных для того прав ?... Сомневаюсь...


--------------------
С уважением, г-н Посол.
PM   Вверх
En_t_end
Дата 7.9.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Вот в процессе разработки пришла мне такая шальная мысль - а что если потом, когда я буду размораживать потоки, то процесс может заработать не так как нужно. Ну допустим у него был выставлен таймаут на ответ какого-то свего потока, если ответа не последует(вдруг будет заминка с размораживанием) - это исключение. Мне нужно, чтобы потом процесс жил как будто ничего и не было.
Добавлено @ 15:43
Или может нарушиться та уникальная структура синхронизации, что была до заморозки.
PM MAIL ICQ Skype GTalk Jabber   Вверх
_hunter
Дата 7.9.2005, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
En_t_end
Дата 7.9.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



_hunter
Мля... че же делать. Мне надо обязательно замораживать процесс.
Хмм... а может просто сразу терминалить процесс, запомнить его путь, сделать то что мне нужно а потом загрузить процесс. Да.. наверное так будет лучше smile
Добавлено @ 16:11
Опа... а ведь PROCESSENTRY32::szExeFile - не содержит путь в win2000/XP. И как же мне интересно его получить ? Ведь я не знаю даже с какого носителя может быть запущена программа, чтобы найти его(да даже если бы знал - поиск по всему носителю - это слишком нетривиальная задача, занимающая много времени).
PM MAIL ICQ Skype GTalk Jabber   Вверх
p0s0l
Дата 7.9.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 3
Всего: 112



Цитата
Мля... че же делать. Мне надо обязательно замораживать процесс.
Хмм... а может просто сразу терминалить процесс, запомнить его путь, сделать то что мне нужно а потом загрузить процесс. Да.. наверное так будет лучше
Ого... Хуже этого не придумаешь. Так вообще всё можно потерять и ничего не восстановить... Путь к exe можно узнать, но лучше не юзай такой способ, лучше уж простая заморозка... Если только приложение не специфичное...
Мож лучше расскажешь, для каких целей всё это делается ? И что ты хочешь сделать в период "спячки" ?



--------------------
С уважением, г-н Посол.
PM   Вверх
En_t_end
Дата 7.9.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



p0s0l
Цитата(p0s0l @ 7.9.2005, 21:01)
Мож лучше расскажешь, для каких целей всё это делается ? И что ты хочешь сделать в период "спячки" ?

У меня есть список программ, которые не должны быть загружены. Или могли бы быть загружены при вводе специального кода в специальном диаологе. Короче блокиратор запуска с функцией деблокировки по паролю.
Добавлено @ 17:15
Цитата(p0s0l @ 7.9.2005, 21:01)
лучше уж простая заморозка... Если только приложение не специфичное...

В том-то и дело, что я не знаю какие приложения будут в списке. Процентов 60, что это будут программы работающие через интерфейс сокетов.

PM MAIL ICQ Skype GTalk Jabber   Вверх
_hunter
Дата 7.9.2005, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



а зачем их блокировать? закрывай процесс и все. или хук на запуск повесь...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
bilbobagginz
Дата 7.9.2005, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



я здесь так, нечаянно.
в линуксе это замораживание называется "checkpointing"
и работает отлично... до такой степени замораживает, что можно заморозить процесс , а разморозить на другом компьютере, и даже запустить с точки остановки.

я копал бы в сторону винодвых библиотек "chkpt" или "checkpointing". но насколько мне известно, не работает оно в винде.

пока.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.