На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (4) « Первая ... 2 3 [4]  все  ( Перейти к последнему сообщению )  
> Process Explorer от Sources.ru
    Скриншоты Process Explorer от Sources.ru
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image
    user posted image


    Итак, в проект ищутся желающие поковыряться в недрах 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 от Руссиновича. :) Достаточно иметь желание и уметь разбираться во всяких "системных штучках". Соответственно, все комментарии приветствуются.

    Пока все. :)
    user posted image
    ЩИТО?
      Цитата Mna @
      Ну вы все даёте, в этой теме! :)
      .....
      Единственные минусы его:
      1) он написан на С# - думаю ....
      3) минус того что, бывает, потребляет много памяти - следстсиве зависимости от C#, ...
      Хотя, с другой стороны формы делать на С# легче...

      Сорри! Вы какую версию исходников смотрели??!!
      Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27!
      Все таки здорово что Windows стал OpenSource
        Цитата ALXR @
        Цитата Mna @
        Ну вы все даёте, в этой теме! :)

        Когда мне понадобились исходники и/или больше инфо по PE (Process Explorer от, теперь уже Microsoft TechInfo)
        то я быстро нашел Process hacker:
        http://processhacker.sourceforge.net/
        Так что, всё возможно.


        Ну ты даешь!
        Где там список открытых файлов? Где там управление тредами? Где там управление привилегиями? Где там... Что-то долго перечисляю. :ph34r:

        1 Properties (мышкой или Enter)-> Handles -> Тype=File в левой колонке
        2 Properties -> Threads
        3 Properties -> Token и в нижней панели Popup menu: Enable|Disable|Remove|Copy

        Цитата ALXR @

        Где там... Что-то долго перечисляю. :ph34r:


        А это проявляется твое предубеждение?

        Хотя, с другой стороны, я сам тоже, не ожидал что его перепишут с С# на C, а вот сделано же! совсем круто.

        И вообще. Если даже какой-то функции и не хватает - так и добавить можно, не?
        всё возможно.

        Добавлено
        Цитата Dagdbog @
        Цитата Mna @
        1) он написан на С# - думаю ... 3) минус того что, бывает, потребляет много памяти

        Сорри! Вы какую версию исходников смотрели??!!
        Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27!

        Я как-то пропустил что его переписали на С, сорри. давно смотрел, наверное с версии в 2009 примерно v1.3.хх. и тогда переписывания на С/С++ совсем не ожидалось, или в очень дальних планах... -и несмотря на жадное потребление памяти

        а теперь, о чудо, он на С, и так даже еще лучше. и потребление памяти снизилось.

        можно уже использовать думаю


        ....
        Может теперь уже UI подправить?? чтоб была копия ProcessExplorer? :))
          На хабрахабре вчера появился довольно большой обзор-сравнение Process Explorer против Process Hacker,

          Вот тут: Process Explorer vs Process Hacker
            Интересная штука этот Process Hacker. Только сабж о другом Process Explorer'е
            char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
            for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


            user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
              Диалоговое окно процесса содержит в себе несколько категорий:
              Системная информация:
              -- Совокупные данные по процессу (время запуска, потребление физической и виртуальной памяти, данные исполняемого модуля и т.д.);
              -- Модули, загруженные процессом;
              -- Потоки;
              -- Привилегииuser posted image
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,1001 ]   [ 17 queries used ]   [ Generated: 23.09.19, 09:20 GMT ]