Netzzugriffe eines Prozesses auflisten
-
Hi!
Ein Prozess greift auf mehrere Quellen im Internet zu. Nun möchte ich diese im ersten Schritt auflisten, und später - wenn möglich - den Zugriff auf gewisse URLS unterbinden.
Wie stelle ich das am schnellsten an? Es muss keine schöne Lösung sein, sie sollte nur relativ schnell umzusetzen sein - optimalerweise mit unmanaged C++ Code, ohne auch nur den kleinsten Hauch von .NET

Danke für eure Hilfe!
-
Auflisten ist so ganz einfach:
netstat -ab
Das unterbinden ist dann nicht mehr so einfach...
-
erstmal Danke für deine Antwort!
Leider ist netstat für mich nicht ganz so praktisch - ich brauche nur die Informationen eines einzelnen Prozesses, und so wie ich das sehe, gehen bei dem Intervalscan von netstat auch Informationen verloren, und ich benötige wirklich alle Zugriffe. Ansonsten wäre ein Programm wie netstat nicht schlecht

-
Dann musst Du wohl doch einen TDI-Filter-Treiber schreiben.
Oder ab Vista das "Filtering-Framework" verwenden...
-
hmm, hättest du zu den beiden Themen zufällig Links, wo ich mich darüber informieren kann?
Mit dem Thema Hooks habe ich mich bisher noch nicht beschäftigt, wäre es vielleicht einfacher einfach einen Hook auf die Winsock API zu setzen, und dort die Zieladresse und die dazugehörige ProzessID auszulesen?
-
Ab Vista: WFP und hier speziell ALE:
http://msdn2.microsoft.com/en-us/library/aa363971.aspx
WFP:
http://msdn2.microsoft.com/en-us/library/aa363967.aspxTDI-Filter:
Grundlagen:
http://www.codeproject.com/system/driverdev4asp.asp
http://www.pcausa.com/tdisamp/default.htmDu musst dazu aber das DDK (bzw. KMDF) installieren:
http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx
-
Du könntest natürlich auch nur den einen Prozess Hooken...
egal wie Du es aber auch machst... es ist nicht trivial.