Форум: "WinAPI";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизПроцессы приложений Найти похожие ветки
← →
Elen © (2006-04-14 11:57) [0]Господа! Есть ли возможность получить список функций и процедур и их адреса, которые использует указанный загруженный процесс?
← →
Сергей М. © (2006-04-14 12:07) [1]Что значит "использует" ? Поясни ..
← →
vodvorezlaya (2006-04-14 12:15) [2]Взять исходник процесса, декомпилировать )))
← →
Elen © (2006-04-14 12:29) [3]Использует - значит вызывает в ходе работы. Декомпилоровать кстати нет возможности. Определять должна программа
← →
Сергей М. © (2006-04-14 12:38) [4]
> вызывает в ходе работы
Увы, нет такой возможности.
Факт хотя бы однократного вызова той или иной п/программы определяется логикой закодированного в ней алгоритма, но отнюдь не фактом присутствия в коде приложения кода той или иной п/программы.
← →
Игорь Шевченко © (2006-04-14 12:55) [5]
> Есть ли возможность получить список функций и процедур и
> их адреса, которые использует указанный загруженный процесс?
>
Да, через отладчик. Для импортируемых процедур. У Гэри Неббета пример есть. Неббета можно найти в тырнете.
← →
Сергей М. © (2006-04-14 13:02) [6]
> Игорь Шевченко © (14.04.06 12:55) [5]
При неких условиях в некий момент некая п/программа Х вызывается, а при неких иных условиях она же ни разу не вызывается.
Можно ли считать, что п/программа Х "используется" процессом приложения ?
Судя по абстрактному пояснению "в ходе работы" (см. [3]) - нельзя.
← →
Игорь Шевченко © (2006-04-14 13:23) [7]Сергей М. © (14.04.06 13:02) [6]
Так Неббет как раз на эти вызовы ставит Breakpoints и по анализу их срабатывания определяет, что вызывалось, а что нет.
← →
Сергей М. © (2006-04-14 13:27) [8]
> Игорь Шевченко © (14.04.06 13:23) [7]
Про именно импортируемые п/программы у автора ни слова в вопросе.
Просто "функций и процедур" - и все тут... И бессилен тут Неббет ..
← →
Игорь Шевченко © (2006-04-14 13:29) [9]Сергей М. © (14.04.06 13:27) [8]
> Просто "функций и процедур" - и все тут... И бессилен тут
> Неббет ..
В таком случае сгодится любой профилировщик с поддерживаемой опцией Coverage analysis.
← →
Сергей М. © (2006-04-14 14:00) [10]
> Игорь Шевченко © (14.04.06 13:29) [9]
Тот самый "любой профилировщик с поддерживаемой опцией" справится с задачей отслеживания вызовов вида
push адрес_возврата
jmp точка_входа
?
← →
Игорь Шевченко © (2006-04-14 14:55) [11]Сергей М. © (14.04.06 14:00) [10]
А что, много компиляторов генерирует такие вызовы процедур ? Я не уверен, что справится, скорее всего, не справится, но см. начало поста.
← →
Elen © (2006-04-14 15:03) [12]Но все же например Depender из Visual Studio показывает связи процесса с подпрограммами, и вроде есть какая-то карта памяти процесса, где описаны вызовы и релоки. Знает ли кто-нибудь о ее существовании? Если знает то поподробнее пожалуйста.
← →
Сергей М. © (2006-04-14 15:08) [13]
> Игорь Шевченко © (14.04.06 14:55) [11]
Не лезь в дебри.
лучше направь автора на путь истинный. Дабы хотя бы в терминологии у нее в голове прояснилось.
← →
Игорь Шевченко © (2006-04-14 15:10) [14]Сергей М. © (14.04.06 15:08) [13]
> Не лезь в дебри.
Мне можно.
Elen © (14.04.06 15:03) [12]
> , и вроде есть какая-то карта памяти процесса, где описаны
> вызовы и релоки.
Есть. Называется таблица импорта. Но прежде чем давать какой-то совет, ты скажи, нафига тебе это надо ?
← →
Сергей М. © (2006-04-14 15:10) [15]
> Elen © (14.04.06 15:03) [12]
Какие нафих "релоки" при вызове п/п а-ля call [SomeCommonUsageRegister] ?)
← →
Сергей М. © (2006-04-14 15:11) [16]
> Мне можно.
Исчерпывающий ответ.
Засим комментариев не имею.
← →
Сергей М. © (2006-04-14 15:13) [17]И меряться "длиной", Игорь, тоже не стОит, думаю.
← →
Игорь Шевченко © (2006-04-14 15:16) [18]Сергей М. © (14.04.06 15:13) [17]
Да я никаким боком не меряюсь, Сергей :) Оно мне сильно надо ? Давай пусть автор поста скажет, нафига ему это, а там и совет дадим.
← →
Сергей М. © (2006-04-14 15:16) [19]
> Elen © (14.04.06 15:03) [12]
> Depender из Visual Studio показывает связи процесса с подпрограммами
Мало ли чего он показывает !
Конкретно же тот самый "Depender" показывает состояние тиаблиц импорта/експорта, и не более того.
А вызовет ли некий интересующий тебя процесс нкую интересующую тебя п/п в составе импортируемой - то бабушка надвое сказала.
← →
Сергей М. © (2006-04-14 15:17) [20]
> Игорь Шевченко © (14.04.06 15:16) [18]
Не имею ничего против.
Спасибо за понимание.
← →
Elen © (2006-04-14 15:42) [21]Уважаемые господа! Рассказываю проблему :
У меня есть куча пользователей, обьединенных в локальную сеть. Есть файл-сервера, где хранится более-менее важная информация. Среди пользователей присутствуют некие продуманные личности еще не юзеры но уже не ламеры. И эти личности пихают на сервер в папки с важной информацией всякую чущь типа фильмов. Я не админ не могу закрыть доступ, тем более что в этих папках эти же личности хранят важные для работы сведения. Мне пришла в голову мысль : а что, если на уровне ядра отсекать копирования неугодные файлы. Мне посоветовали взять какой-нибудь FireWall и им отсекать, но :
1 Большинство таких программ не достаточно гибки при работе многих пользователей в разных программах (вроде AutoCAD, Word...) с этими файлами в рабочих папках
2 Админы не согласятся поставить такой FireWall, а мне не хочется выгребать каждый день тонны мусора.
Я хочу написать свой отсекатель на моих условиях
← →
Сергей М. © (2006-04-14 15:59) [22]
> Elen © (14.04.06 15:42) [21]
Ты, мил моя, поясни, при чем здесь "список функций и процедур и их адреса, которые использует указанный загруженный процесс" ..
← →
Elen © (2006-04-14 16:12) [23]Я думаю перехватить попытки создания, копирования файлов на самих компьютерах Юзеров, типа действия программы HideFolderXP, которая перехватывает функции вроде ZwQuerySystemInformation и не показывает указанные мной папки ни админам ни юзерам. Для этого нужно заменить Виндовые процедуры для процессов типа Windows Commander моими с анализом запрашиваемого действия над файлами. Программа пусть анализирует какие файлы юзер хочет обработать и принимает решения в зависимисти от спистка разрешенных для обработки типов файлов. Кстати Хуки типа SnapShot не помогут т.к. у некоторых юзеров есть програмки которые их обходят (это уже было опробовано админами, и затем забыто за неимением опыта у таковых).
← →
Игорь Шевченко © (2006-04-14 16:18) [24]Elen © (14.04.06 15:42) [21]
Я могу посоветовать администраторам включить аудит создания файлов и к тем, кто создал не те файлы, применять депремирование. То есть, подобная задача решается административными методами, а не программными, гораздо более действенно.
> Я не админ не могу закрыть доступ
В таком случае это не твоя проблема - кто и что где хранит.
Кстати, есть еще способ - следить за каталогами при помощи ReadDirectoryChangesW и анализировать файл по мере его появления по содержимому, на предмет нужности/ненужности. Ну и ненужные удалять...
← →
BiN © (2006-04-14 16:31) [25]
> Elen © (14.04.06 15:42) [21]
>
> Уважаемые господа! Рассказываю проблему :
Я бы просто установил на файл-сервере квоты для каждого пользователя, ибо не дело админа-программиста определять степень важности хранимой информации.
← →
Сергей М. © (2006-04-14 16:31) [26]
> Elen © (14.04.06 16:12) [23]
Рекомендую вместо галиматьи а-ля [21], не имеющей отношения к программингу, изложить задачу с т.з. программиста, а не черт-те какого юзера, даже гордо именующего себя "админом".
> Виндовые процедуры для процессов типа Windows Commander
Галиматья.
← →
Elen © (2006-04-14 16:40) [27]Админы забили на это БОЛЬШОЙ РЖАВЫЙ ГВОЗДЬ. А мне расхлебывать. Было такое предложение но они отмахались, типа "Делов полно".
> Кстати, есть еще способ - следить за каталогами при помощи ReadDirectoryChangesW и анализировать файл по мере его появления по содержимому, на предмет нужности/ненужности. Ну и ненужные удалять...
При копировании файлов больших размеров файл можно засечь до окончания его копирования. Если попытаться удалить такой файл система виснет (Проверено на себе). К тому же как мне использовать ReadDirectoryChangesW - как событие или в таймере? если в таймере то это гарантированный тормоз, а машины слабенькие, и с большим обьемом передаваемой информации могут не справляться.
← →
Сергей М. © (2006-04-14 16:45) [28]
> мне расхлебывать
Тогда погуляй для начала по sysinternals.com.
Уверяю тебя - для думающего программера бесполезной эта прогулка не будет)
← →
Elen © (2006-04-14 16:54) [29]Благодарю за ссылку, Сергей. А на русском есть чего-то в этом роде? И кстати знает ли кто какие-нибудь описания API функций, которые обычно недокументированы? Где их можно найти (описания)?
← →
Игорь Шевченко © (2006-04-14 16:55) [30]
> К тому же как мне использовать ReadDirectoryChangesW - как
> событие или в таймере?
Асинхронно.
> При копировании файлов больших размеров файл можно засечь
> до окончания его копирования.
Да, эта проблема в этом форуме решалась, воспользуйся поиском.
> и с большим обьемом передаваемой информации могут не справляться.
Там, собственно, объемов-то нету, передаются только изменения в файловой системе, а откуда там объемы возьмутся - только имена файлов.
← →
Игорь Шевченко © (2006-04-14 16:56) [31]
> И кстати знает ли кто какие-нибудь описания API функций,
> которые обычно недокументированы? Где их можно найти (описания)?
>
Зачем ? Для этих проблем все функции документированы.
← →
Elen © (2006-04-14 17:02) [32]Имеется ввиду Файл-сервер. Предположим на него удаленно через пять свитчей копируется пара файлов скажем AVI по 700М каждый. Я фиксирую первый из них уже на 10-20% копирования. Пытаюсь стереть на сервере... и сервер виснет (стереть имеется ввиду программно). Остальные пользователи, подключенные к серверу в эти моменты не могут работать. Теряют открытые наработки или не имеют доступ к серверу (Причем если работа идет в AutoCad, гаплык редактируемым проектам). Так что обьем важен, поэтому нужно присекать само начало копирования, а не отслеживать появления файлов
← →
Elen © (2006-04-14 17:07) [33]Нет Игорь. Оказывается не все. Когда начали рыться по Инету в поисках хоть какой нибудь документации, наткнулись на повторы, которые содержали описания так сказать самых популярных функций. После уже заглянув в ДЛЛ-ки Винды обнаружили там (естесственно) гораздо больше возможностей, а значит и лазеек. Хотелось бы о них поподробнее...
← →
Игорь Шевченко © (2006-04-14 17:18) [34]Elen © (14.04.06 17:07) [33]
> После уже заглянув в ДЛЛ-ки Винды обнаружили там (естесственно)
> гораздо больше возможностей, а значит и лазеек.
Для копирования файлов ? :) Не верю.
Кроме того, первое действие в случае неизвестного имени фукнции - это поиск ее в гугле.
Elen © (14.04.06 17:02) [32]
И все-таки, административными мерами лучше. Ну или с некой периодичностью сканировать каталоги и удалять все ненужное с посылкой оповещения руководству.
← →
Elen © (2006-04-17 07:49) [35]Ладно Господа! Благодарю за нелишнюю критику. Думаю что Вы дали полезные ответы на мой вопрос. На этом закрываю эту тему. Всем спасибо. До встречи
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.013 c