Вниз
Скачать: CL | DM;

Нумерация открытых хэндлов чужого процесса   Найти похожие ветки 

 
FireHack ©   (2003-10-27 18:36) [0]

Всем привет!!!
Проблема следующая - было необходимо вывести список:
ip | port | Id процесса

с первыми 2-мя все просто (можно использовать GetTcpTable), но как определить id процесса, инициирующего соединение. Кто-то посоветовал пройтись по всем открытым хэндлам процессов, но, как это сделать, не сказал.

Вопрос: как это сделать

Всем спасибо.


 
Digitman ©   (2003-10-28 11:04) [1]

я бы поступил проще

- устанавливаем любой глоб.хук
- в ходе иниц-ции хук-DLL перехватываем WinsockAPI-вызовы socket(), CloseSocket(), bind(), connect() - эти ф-ции дают инф-цию о хэндлах создаваемых гнезд и ассоциированных с ними интерфейсами/номерами портов
- в ходе той же инициализации вызываем GetCurrentProcessId для получения Id тек.процесса, в контексте которого возможно будут впоследствии вызываться вышеупомянутые ф-ции

т.о., ставится однозначное соответствие между Id процесса и Winsock-ресурсами, им занимаемыми/освобождаемыми в ходе работы

полученная инф-ция передается любым удобным способом в процесс-монитор, установивший этот глоб.хук

сама хук-ф-ция в теле хук-DLL может ничего полезного и не делать, просто вызывать в своем теле CallNextHookEx()


 
FireHack ©   (2003-10-28 13:10) [2]

>> Digitman
Тогда для корректной работы тебе нужно запускать свою прогу ДО запуска всех приложений ака открытия сокетов, а мне необходимо иметь ТЕКУЩУЮ инфу об открытых сокетах.


 
Digitman ©   (2003-10-28 16:27) [3]

копай в msdn в сторону интерфейса транспортного устройства (кл.слово "TDI")



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
1-86384
vovan1
2003-12-15 13:52
2003.12.26
hlp-файл


7-86578
vitalik
2003-10-22 20:16
2003.12.26
не видимая программа


1-86416
Макс2
2003-12-13 18:43
2003.12.26
StringGrid


3-86322
Bless
2003-12-03 11:13
2003.12.26
raiserror


4-86593
karburator
2003-10-29 11:23
2003.12.26
не работает oemtochar()




   Наверх