Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.216.163] |
|
Страницы: (4) « Первая ... 2 3 [4] все ( Перейти к последнему сообщению ) |
Прикр. сообщ.
#1
,
|
|
|
Скриншоты Process Explorer от Sources.ru Итак, в проект ищутся желающие поковыряться в недрах win, и создать проект, позволяющий изучать процессы от А до Я. Цель проекта - Отобразить максимально возможную информацию о процессах и потоках: -- Структура процесса: Потоки, модули, объекты ядра, объекты GUI, принадлежащие ему; -- Потребление памяти, CPU и прочих ресурсов; -- Управление процессом: запуск, остановка, управление потоками, модулями, объектами ядра и GUI. Структура Проект состоит из трех составляющих: - GUI-приложение, с которым работает пользователь; - Прослойка между GUI-приложением и драйвером ядра: библиотека DLL, имеющая абстрактный от ядра интерфейс, с которым работает GUI-приложение; - Драйвер ядра, собирающий и управляющий объектами, недоступными из режима USER (3 кольцо). GUI-приложение Его проект непосредственно представлен на скриншотах выше (т.е. на скриншотах только проект, который в конечном варианте скорее всего будет сильно отличаться от представленного). - Главное окно отображает совокупную информацию по процессам и ресурсам системы; - Диалоговое окно процесса содержит в себе несколько категорий: -# Системная информация: -- Совокупные данные по процессу (время запуска, потребление физической и виртуальной памяти, данные исполняемого модуля и т.д.); -- Модули, загруженные процессом; -- Потоки; -- Привилегии; -- Использование сети; -- Службы, содержащиеся в процессе; -- Прочие данные. -# Объекты ядра: -- Полный список объектов ядра, принадлежащих процессу; -- Объекты реестра (ключи); -- Объекты ФС (файлы, директории); -- Объекты синхронизации; -- Прочие объекты. -# Объекты GUI: -- Окна; -- Таймеры; -- Контекстные устройства, кисти, шрифты и т.п. -- Хуки; -- Прочие данные (полный список приведен в структурах ядра). !!! Примечание: в GUI-приложении НЕ используются ресурсы типа RT_DIALOG. Все диалоги создаются посредством класса CDialog (на базе DialogBoxIndirectParam), весь текст на которых берется уже из ресурсов. Библиотека абстракции от ядра Содержит интерфейс обмена данными между GUI-приложением и ядром. Т.е. предоставляет API для извлечения и изменения данных объектов ядра и GUI. Т.е. системное API будет все тут, все данные по системе, процессам, потокам, объектам ядра и GUI будет предоставлять именно эта библиотека, GUI-приложение будет использовать системное API лишь для отображения собственного оконного интерфейса. Драйвер режима ядра Содержит в себе API для работы с ядром: извлечение и управление данными ядра. Изначально общение с DLL планировалось сделать через SSDT, но не срослось, и поэтому используются CTL-коды. Текущее положение проекта Находится в стадии "набросков". Т.е. общая картина представленного предложения прослеживается, но весьма и весьма размыта. Если найдутся желающие, то подниму SVN и даю исходники (далекие, кстати, от идеала) и их описание. Добавление идей и/или поправка имеющихся приветствуются. Т.е. это мое предложение заключается в наборе команды, готовой заняться таким довольно весомым, но бесплатным и открытым проектом, который в теории переплюнет PE от Руссиновича. Достаточно иметь желание и уметь разбираться во всяких "системных штучках". Соответственно, все комментарии приветствуются. Пока все. |
Сообщ.
#46
,
|
|
|
Цитата Mna @ Ну вы все даёте, в этой теме! ..... Единственные минусы его: 1) он написан на С# - думаю .... 3) минус того что, бывает, потребляет много памяти - следстсиве зависимости от C#, ... Хотя, с другой стороны формы делать на С# легче... Сорри! Вы какую версию исходников смотрели??!! Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27! |
Сообщ.
#47
,
|
|
|
Цитата ALXR @ Цитата Mna @ Ну вы все даёте, в этой теме! Когда мне понадобились исходники и/или больше инфо по PE (Process Explorer от, теперь уже Microsoft TechInfo) то я быстро нашел Process hacker: http://processhacker.sourceforge.net/ Так что, всё возможно. Ну ты даешь! Где там список открытых файлов? Где там управление тредами? Где там управление привилегиями? Где там... Что-то долго перечисляю. 1 Properties (мышкой или Enter)-> Handles -> Тype=File в левой колонке 2 Properties -> Threads 3 Properties -> Token и в нижней панели Popup menu: Enable|Disable|Remove|Copy А это проявляется твое предубеждение? Хотя, с другой стороны, я сам тоже, не ожидал что его перепишут с С# на C, а вот сделано же! совсем круто. И вообще. Если даже какой-то функции и не хватает - так и добавить можно, не? всё возможно. Добавлено Цитата Dagdbog @ Сорри! Вы какую версию исходников смотрели??!! Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27! Я как-то пропустил что его переписали на С, сорри. давно смотрел, наверное с версии в 2009 примерно v1.3.хх. и тогда переписывания на С/С++ совсем не ожидалось, или в очень дальних планах... -и несмотря на жадное потребление памяти а теперь, о чудо, он на С, и так даже еще лучше. и потребление памяти снизилось. можно уже использовать думаю .... Может теперь уже UI подправить?? чтоб была копия ProcessExplorer? ) |
Сообщ.
#48
,
|
|
|
На хабрахабре вчера появился довольно большой обзор-сравнение Process Explorer против Process Hacker,
Вот тут: Process Explorer vs Process Hacker |
Сообщ.
#49
,
|
|
|
Интересная штука этот Process Hacker. Только сабж о другом Process Explorer'е
|
Сообщ.
#50
,
|
|
|