Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.198.250] |
|
Прикр. сообщ.
#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 от Руссиновича. Достаточно иметь желание и уметь разбираться во всяких "системных штучках". Соответственно, все комментарии приветствуются. Пока все. |
Сообщ.
#1
,
|
|
|
скриншоты есть, а прога хде ???
|
Сообщ.
#2
,
|
|
|
ALXR, судя по скриншотам, непростая и трудоемкая работа.
(Весьма полезный инструмент. Особенно, когда есть код и в любую секунду можешь добавить любой функционал) Мне понравилась. Молодец ! |
Сообщ.
#3
,
|
|
|
А где сама программа то?
|
Сообщ.
#4
,
|
|
|
Исходники жесточайшим образом грохнул (вместе с бинарниками). По оставшимся кускам допилил заново с совместимостью под Win7 и... терпение кончилось. Выложил скриншоты, еще планировал добавить описание и предложение совместно заняться проектом, но это было еще до того, как первый вариант ушел в небытие. Сейчас руки не дойдут и поэтому здесь висит такой загадочный топик.
|
Сообщ.
#5
,
|
|
|
А красиво...
|
Сообщ.
#6
,
|
|
|
ALXR, вот тебе и дополнительная мотивация довести руки до этого топика
|
Сообщ.
#7
,
|
|
|
Готов выложить описание проекта:
- Что требуется от проекта; - Что сделано; - Структура проекта; Если найдется хотя бы 1-2 человека, готовых принять в нем участие и тогда дадим свой ответ Руссиновичу. Задачи будут примерно такие: - Ковыряние недр виндовс; - Ковыряние в pdb различных версий виндовса; - Применение полученных знаний в проекте. Часть оной документации уже имеется в виде исходных текстов с хоть и скудными, но комментариями. |
Сообщ.
#8
,
|
|
|
Ты сначала выложи, а потом, думаю, желающие оценят имеющийся материал и план, и примут решение, будут участвовать или нет.
Отличный шанс для керо, лео и Рипли проявить лучшие свои качества |
Сообщ.
#9
,
|
|
|
Проекту не помешает штатная русификация.
|
Сообщ.
#10
,
|
|
|
B.V., дал описание.
|
Сообщ.
#11
,
|
|
|
Цитата ALXR @ Т.е. это мое предложение заключается в наборе команды, готовой заняться таким довольно весомым проектом, который в теории переплюнет PE от Руссиновича. Что ж ты сразу пугаешь. Уточнил бы, что проект планируется бесплатный и открытый, без жесткого отбора по уровню знаний и т.д. Со своей стороны, я даже могу пообещать рассмотреть какие-то поощрения, а возможно, и призы за активное участие в этом проекте. Все-таки, проект от Sources.ru, и ресурс не должен оставаться безучастным |
Сообщ.
#12
,
|
|
|
Цитата ALXR @ Т.е. это мое предложение заключается в наборе команды, готовой заняться таким довольно весомым, но бесплатным и открытым проектом, который в теории переплюнет PE от Руссиновича. Цитата B.V. @ Что ж ты сразу пугаешь. Не. Он не пугает - он очень коварно и грамотно заманивает ! Я серьезно У меня сейчас загрузка жуткая (ни в сказке сказать, ни пером описать) И это будет продолжаться еще, как минимум, полтора месяца. А поучаствовать в попытке "переплюнуть Руссиновича" ну очень хочеться Плюс к этому, это шикарная возможность получить хорошие "скилы" в С, С++ P.S. Ну и, как я писала выше, это весьма полезный инструмент в домашнем хозяйстве P.P.S. Меня, пока со счетов не сбрасывайте, может сумею придумать, как выкроить время. |
Сообщ.
#13
,
|
|
|
Да тут и так никто никуда не торопится. Так что не факт, что еще будем плеваться, чтобы переплюнуть.
|
Сообщ.
#14
,
|
|
|
ALXR
Как процесс? Чем можно помочь? пс. картинки понравились:) |
Сообщ.
#15
,
|
|
|
Urich, если есть интерес заняться, то можем обсудить в ПМ или icq, что есть и что нужно.
|
Сообщ.
#16
,
|
|
|
ALXR, а не удобнее создать группу в Скайпе? И инвайтить туда желающих по мере появления..
|
Сообщ.
#17
,
|
|
|
Цитата Исходники жесточайшим образом грохнул (вместе с бинарниками). Привлечь бы тебя за порчу имущества. |
Сообщ.
#18
,
|
|
|
Цитата B.V. @ ALXR, а не удобнее создать группу в Скайпе? И инвайтить туда желающих по мере появления.. Не умею пользоваться. Да и пока не досуг изучать. |
Сообщ.
#19
,
|
|
|
Проект заглох?
|
Сообщ.
#20
,
|
|
|
Цитата ALXR @ Не умею пользоваться Там нечего особо уметь, интерфейс достаточно простой. А плюс в том, что в Скайпе очень многие наши тематики |
Сообщ.
#21
,
|
|
|
B.V., а поподробнее об ентом где узнать? (а то я как всегда не вкурсах..)
|
Сообщ.
#22
,
|
|
|
Цитата Krid @ а поподробнее об ентом где узнать? Здесь, например: Чат игроманов (и не только) Исходников в Скайпе. (сообщение #2593349) |
Сообщ.
#23
,
|
|
|
Потихоньку впиливаем под Win7.
|
Сообщ.
#24
,
|
|
|
Можно глупый вопрос? Я понимаю мол хардкорить в коде. Но с формами то зачем хардкорить? )) заняться нечем?))
|
Сообщ.
#25
,
|
|
|
Тут подумалось - а зачем вообще изобретать лисопед??
ИМХО, лучше уж сделать что-нибудь типа Task Manager Extension Помнится, когда-то я его юзал (+ ещё кое-чего туда добавил) - довольно удобная чтука была. Да и намного меньше кода нужно писАть, поскольку это как-бы "плагин" к стандартному TaskManager'у. Ну а в последнем основная функциональность уже реализована. И задача сводится к тому, чтобы просто добавить что-то своё, не переписывая по-новой нормально работающий, отлаженный код. |
Сообщ.
#26
,
|
|
|
Killbrum, где хардкод? Какой хардкод? Никакого хардкода и костылей там нет.
Krid, TME это как раз хардкод. Выглядит прилично, но удачной реализации быть не может. |
Сообщ.
#27
,
|
|
|
Цитата ALXR @ TME это как раз хардкод. Интересно, где это ты хардкод увидел? (или ты имеешь ввиду, что TME в систему встраивается?) Цитата ALXR @ удачной реализации быть не может Интересная мысль. И главное, полностью расходится с реальностью ЗЫ Вообще не понятно - зачем плодить клоны Process Explorer'а (которых и так немеряно)?? Вот ты можешь объяснить мне внятно, зачем нужен этот твой очередной клон PE? Не лучше ли будет сделать что-нибудь по-оригинальнее? |
Сообщ.
#28
,
|
|
|
Цитата Krid @ Интересная мысль. И главное, полностью расходится с реальностью ЗЫ Вообще не понятно - зачем плодить клоны Process Explorer'а (которых и так немеряно)?? Вот ты можешь объяснить мне внятно, зачем нужен этот твой очередной клон PE? Зачем? Цитата Krid @ Не лучше ли будет сделать что-нибудь по-оригинальнее? Мне (ну и, похоже, не только мне) хочется покопаться во всех этих делах. Кроме того, наличие исходных текстов будет существенным плюсом ко всему этому делу. |
Сообщ.
#29
,
|
|
|
Цитата ALXR @ Мне (ну и, похоже, не только мне) хочется покопаться во всех этих делах. Кроме того, наличие исходных текстов будет существенным плюсом ко всему этому делу. Не, ну с этим, конечно не поспоришь. Вещь, конечно же, очень полезная в плане обучения, изучения механизмов работы системы, ядра, etc. Наверное, нет такого программера, который бы не делал какой-нибудь свой taskman или PE (или хотя бы не думал об этом).. Просто сначала не очень понял - какова практическая цель всего этого. ЗЫ но всё-таки обрати внимание на TME. Он же с исходниками и содержит массу полезного кода.. |
Сообщ.
#30
,
|
|
|
Цитата Krid @ ЗЫ но всё-таки обрати внимание на TME. Он же с исходниками и содержит массу полезного кода.. Видел я его. Все, что он использует давно известно и расписано. К примеру, чтение списка открытых дескрипторов через всем известное отверстие. |
Сообщ.
#31
,
|
|
|
Цитата ALXR @ Видел я его. Все, что он использует давно известно и расписано. К примеру, чтение списка открытых дескрипторов через всем известное отверстие. А чем тебя это не устраевает? |
Сообщ.
#32
,
|
|
|
Ну а зачем делать криво, если можно сделать прямо? На самом деле, вопрос холиварный, поэтому спорить смысла нет. Мне (лично мне), кажется неправильным килять тред, если он виснет на пайпе. Это во-первых. Во-вторых, из-за этого информация о дескрипторах процесса будет неполной. Но это лишь верхушка айсберга. Некоторую информацию, которую хочется подсмотреть, на уровне UM получить не выйдет (UI-таймеры, хуки итд), уже надо что-то глобальнее делать. Ну а раз хочется, то почему это нельзя реализовать, попутно почесать руки и набить скиллы?
|
Сообщ.
#33
,
|
|
|
Цитата ALXR @ На самом деле, вопрос холиварный, поэтому спорить смысла нет. Ну тут ты не прав. Дело вовсе не в каких-то предпочтениях. И никаких холиваров тут и близко нет Просто, ИМХО, это удобнее, и для юзеров привычнее (имеется ввиду - вызывать Task Manager). Видимо, я изначально не очень внятно пояснил свою мысль. Попробую ещё раз В общем, плагин (назовём его так) к стандартному виндовому Диспетчеру Задач не накладывает совершенно никаких ограничений на код. Т.е., сам интерфейс расширений Taskman'а не накладывает ограничений на код этих самых расширений. Ты просто пишешь DLL'ку, в которой реализуешь всё, что ты хочешь, и так, как ты хочешь. Суёшь в неё любую функциональность (и реализуешь её так, как нужно тебе). А потом просто подключаешь её к Taskman'у. Всё. А всё это: "килять тред, если он виснет на пайпе" или "посмотреть инфу в UM" - ты можешь сам запросто изменить. Кста, тут ты прав: "килять тред, если он виснет на пайпе" - это полная чушь. Для перечисления и киляния таких пайпов (находящихся в состоянии ожидания) и получения инфы о них, пишется простой драйвер. И никаких тредов (и тем более убивания их) вообще не нужно. Ты смотрел на исходники TME? Да, там есть не мало "кривого" кода. Но почему ты решил, что это руководство к действию? Это же просто демка, и не более того. Что тебе мешает написать нормальный код? Смысл тот же - написал DLL'ку, подключил к TM и пользуешься. Повторюсь - я считаю, что это удобно, практично, памяти жрёт мало и работает быстрее. (последние два этих своих утверждений я сам проверял, так что можешь мне на слово поверить ) Вот, собс-но и все мои аргументы в пользу расширения Диспетчера Задач, относительно создания отдельной проги |
Сообщ.
#34
,
|
|
|
готов присоединиться к проекту !
|
Сообщ.
#35
,
|
|
|
Цитата ALXR @ Killbrum, где хардкод? Какой хардкод? Никакого хардкода и костылей там нет. Я писал штук так 10 гуев на чистом вин апи. Это же долго да оно чуточку быстрее. Но не знаю стоит ли тех свеч. Чисто о гуе. Не лучше сделать как в скайпе? (тут могу ошибаться но когда то да где то о таком читал) мол гуй на делфях\билдере а ядришко в дллках? Гуй будет очень красив + создавать очень просто. А уже всё остальное в дллках. |
Сообщ.
#36
,
|
|
|
Killbrum, в таком случае разумнее взять на вооружение Qt, но это уже будет не
Цитата Системное программирование и WinAPI |
Сообщ.
#37
,
|
|
|
Цитата Killbrum @ Я писал штук так 10 гуев на чистом вин апи. Это же долго да оно чуточку быстрее. Но не знаю стоит ли тех свеч. А на чём писАть системные проги? На C#? А дрова - туда же? [Win]API и asm - те кирпичики, из которых и состоит OS. По этому, системщик просто обязан знать всё это и уметь и программить на этом. Иначе - это простой кодер, никакого отношения к системному программированию не имеющий.. |
Сообщ.
#38
,
|
|
|
мой ICQ 6 49084021 добавь меня пожалуйста!
|
Сообщ.
#39
,
|
|
|
По существу могу сказать, фейс убогий. Были бы иконки, еще куда не шло, а вообще надо сделать настраиваемые колонки.
Было бы древо, тогда было можно окончательно подсесть на проект Допиливания !! |
Сообщ.
#40
,
|
|
|
Цитата SOLON7 @ По существу могу сказать, фейс убогий. Были бы иконки, еще куда не шло, а вообще надо сделать настраиваемые колонки. Было бы древо, тогда было можно окончательно подсесть на проект Допиливания !! Заинтриговал!!!1 |
Сообщ.
#41
,
|
|
|
некоторых данных не нашел помогите найти плис
o Имя MODULEENTRY32.szModule o Директория запуска MODULEENTRY32.szExePath o Занимаемая память MODULEENTRY32.modBaseSize o Количество потоков - ? • Общая информация выводимая программой: o Объем оперативной памяти -? o Занятый объем памяти -? o Свободный объем памяти -? o Общее количество процессов -? o Общее количество потоков -? юзаю библиотеку Tool Help (MODULEENTRY32,HEAPENTRY32,PROCESSENTRY32,THREADENTRY32) http://msdn.microsoft.com/en-us/library/windows/desktop/ms683443(v=vs.85).aspx |
Сообщ.
#42
,
|
|
|
Айдар, с такими вопросами в отдельный топик
Эта тема для обсуждения совместной разработки сабжевого проекта |
Сообщ.
#43
,
|
|
|
Ну вы все даёте, в этой теме!
Когда мне понадобились исходники и/или больше инфо по PE (Process Explorer от, теперь уже Microsoft TechInfo) то я быстро нашел Process hacker: http://processhacker.sourceforge.net/ от wj32 Единственные минусы его: 1) он написан на С# - думаю вам ребята есть смысл его переписать на С++ (кстати, мог бы помочь, если реально возьмется кто) 2) отстаёт по функционалу от майкрософтовского 3) минус того что, бывает, потребляет много памяти - следстсиве зависимости от C#, и исчезнет при C++ Хотя, с другой стороны формы делать на С# легче... Но кажется новые библиотеки С++ може многое позволяют. Так что, всё возможно. |
Сообщ.
#44
,
|
|
|
Цитата Mna @ Ну вы все даёте, в этой теме! Когда мне понадобились исходники и/или больше инфо по PE (Process Explorer от, теперь уже Microsoft TechInfo) то я быстро нашел Process hacker: http://processhacker.sourceforge.net/ от wj32 Единственные минусы его: 1) он написан на С# - думаю вам ребята есть смысл его переписать на С++ (кстати, мог бы помочь, если реально возьмется кто) 2) отстаёт по функционалу от майкрософтовского 3) минус того что, бывает, потребляет много памяти - следстсиве зависимости от C#, и исчезнет при C++ Хотя, с другой стороны формы делать на С# легче... Но кажется новые библиотеки С++ може многое позволяют. Так что, всё возможно. Ну ты даешь! Где там список открытых файлов? Где там управление тредами? Где там управление привилегиями? Где там... Что-то долго перечисляю. |
Сообщ.
#45
,
|
|
|
Цитата Mna @ Ну вы все даёте, в этой теме! ..... Единственные минусы его: 1) он написан на С# - думаю .... 3) минус того что, бывает, потребляет много памяти - следстсиве зависимости от C#, ... Хотя, с другой стороны формы делать на С# легче... Сорри! Вы какую версию исходников смотрели??!! Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27! |
Сообщ.
#46
,
|
|
|
Цитата 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 Цитата ALXR @ Где там... Что-то долго перечисляю. А это проявляется твое предубеждение? Хотя, с другой стороны, я сам тоже, не ожидал что его перепишут с С# на C, а вот сделано же! совсем круто. И вообще. Если даже какой-то функции и не хватает - так и добавить можно, не? всё возможно. Добавлено Цитата Dagdbog @ Цитата Mna @ 1) он написан на С# - думаю ... 3) минус того что, бывает, потребляет много памяти Сорри! Вы какую версию исходников смотрели??!! Там вообще-то чистый WinAPI на C! По-крайней мере в версии 2.27! Я как-то пропустил что его переписали на С, сорри. давно смотрел, наверное с версии в 2009 примерно v1.3.хх. и тогда переписывания на С/С++ совсем не ожидалось, или в очень дальних планах... -и несмотря на жадное потребление памяти а теперь, о чудо, он на С, и так даже еще лучше. и потребление памяти снизилось. можно уже использовать думаю .... Может теперь уже UI подправить?? чтоб была копия ProcessExplorer? ) |
Сообщ.
#47
,
|
|
|
На хабрахабре вчера появился довольно большой обзор-сравнение Process Explorer против Process Hacker,
Вот тут: Process Explorer vs Process Hacker |
Сообщ.
#48
,
|
|
|
Интересная штука этот Process Hacker. Только сабж о другом Process Explorer'е
|
Сообщ.
#49
,
|
|
|