На главную
ПРАВИЛА 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) 1 [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
    ЩИТО?
      Urich, если есть интерес заняться, то можем обсудить в ПМ или icq, что есть и что нужно. :)
      user posted image
      ЩИТО?
        ALXR, а не удобнее создать группу в Скайпе? И инвайтить туда желающих по мере появления..
        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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
          Цитата
          Исходники жесточайшим образом грохнул (вместе с бинарниками).

          Привлечь бы тебя за порчу имущества.
          Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал"("Yоur bunnу wrоte")
            Цитата B.V. @
            ALXR, а не удобнее создать группу в Скайпе? И инвайтить туда желающих по мере появления..

            Не умею пользоваться. Да и пока не досуг изучать.
            user posted image
            ЩИТО?
              Проект заглох?
              Кто рано встает, тому целый день спать хочется
                Цитата ALXR @
                Не умею пользоваться

                Там нечего особо уметь, интерфейс достаточно простой. А плюс в том, что в Скайпе очень многие наши тематики
                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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                  B.V., а поподробнее об ентом где узнать? (а то я как всегда не вкурсах..)
                  Кто рано встает, тому целый день спать хочется
                    Цитата Krid @
                    а поподробнее об ентом где узнать?

                    Здесь, например: Чат игроманов (и не только) Исходников в Скайпе. (сообщение #2593349)
                    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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                      Потихоньку впиливаем под Win7.
                      user posted image
                      user posted image
                      ЩИТО?
                        Можно глупый вопрос? Я понимаю мол хардкорить в коде. Но с формами то зачем хардкорить? )) заняться нечем?))
                          Тут подумалось - а зачем вообще изобретать лисопед??

                          ИМХО, лучше уж сделать что-нибудь типа Task Manager Extension

                          Помнится, когда-то я его юзал (+ ещё кое-чего туда добавил) - довольно удобная чтука была.

                          Да и намного меньше кода нужно писАть, поскольку это как-бы "плагин" к стандартному TaskManager'у. Ну а в последнем основная функциональность уже реализована. И задача сводится к тому, чтобы просто добавить что-то своё, не переписывая по-новой нормально работающий, отлаженный код.
                          Кто рано встает, тому целый день спать хочется
                            Killbrum, где хардкод? Какой хардкод? Никакого хардкода и костылей там нет.

                            Krid, TME это как раз хардкод. Выглядит прилично, но удачной реализации быть не может.
                            user posted image
                            ЩИТО?
                              Цитата ALXR @
                              TME это как раз хардкод.

                              Интересно, где это ты хардкод увидел? (или ты имеешь ввиду, что TME в систему встраивается?)

                              Цитата ALXR @
                              удачной реализации быть не может

                              Интересная мысль. И главное, полностью расходится с реальностью :)

                              ЗЫ Вообще не понятно - зачем плодить клоны Process Explorer'а (которых и так немеряно)?? Вот ты можешь объяснить мне внятно, зачем нужен этот твой очередной клон PE?

                              Не лучше ли будет сделать что-нибудь по-оригинальнее?
                              Кто рано встает, тому целый день спать хочется
                                Цитата Krid @
                                Интересная мысль. И главное, полностью расходится с реальностью

                                ЗЫ Вообще не понятно - зачем плодить клоны Process Explorer'а (которых и так немеряно)?? Вот ты можешь объяснить мне внятно, зачем нужен этот твой очередной клон PE?

                                Зачем?

                                Цитата Krid @

                                Не лучше ли будет сделать что-нибудь по-оригинальнее?

                                Мне (ну и, похоже, не только мне) хочется покопаться во всех этих делах. Кроме того, наличие исходных текстов будет существенным плюсом ко всему этому делу.
                                user posted image
                                ЩИТО?
                                  Цитата ALXR @
                                  Мне (ну и, похоже, не только мне) хочется покопаться во всех этих делах. Кроме того, наличие исходных текстов будет существенным плюсом ко всему этому делу.


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

                                  Просто сначала не очень понял - какова практическая цель всего этого.

                                  ЗЫ но всё-таки обрати внимание на TME. Он же с исходниками и содержит массу полезного кода..
                                  Кто рано встает, тому целый день спать хочется
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (4) 1 [2] 3 4  все


                                  Рейтинг@Mail.ru
                                  [ Script Execution time: 0,1642 ]   [ 20 queries used ]   [ Generated: 26.06.19, 06:35 GMT ]