Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

Процессы приложений   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.086 c
3-1148979455
Still Swamp
2006-05-30 12:57
2006.08.06
Поделитесь заголовочным файлом для FireBird Embeded


15-1152531077
Romkin
2006-07-10 15:31
2006.08.06
Темное пиво


2-1153123382
ksa2002
2006-07-17 12:03
2006.08.06
Редактирование DBGrid


2-1153067292
kaif
2006-07-16 20:28
2006.08.06
Хочу покаяться за то, что наговорил про генераторы в триггерах


15-1152680424
начинающий
2006-07-12 09:00
2006.08.06
Можно ли квотировать ICS?