windows - Layered Service Provider i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg søger at skrive en LSP i C # for at indfange og omdirigere UDP-pakker ..


Jeg har lidt erfaring med LSP'er, men jeg har hørt, at de kan gøre denne slags ting, vær venlig at rette mig, hvis jeg er forkert, men er det muligt?


Jeg vil elske nogle eksempler kode, men jeg vil tage nogen information eller råd nogen kan give om emnet. :)

Bedste reference


Du kan se eksempel på kode (c #) for LSP på https://github.com/SOLON7/HTTPSniffer.
Den bruges til 32 Windows OS, men du kan nemt porte den til 64 (indstil LspCatalog64Only under installationen) [1]


Og du skal huske, at du skal generere ny GUID for din udbyder i tilfælde af kollisioner med andre LSP-udbydere.

Andre referencer 1


kig på komodia Der er en artikel + eksempel om LSP, uheldigvis i C ++. [2]


Men det bør ikke være umuligt at konvertere det.

Andre referencer 2


Du skal opbygge en LSP for dette, og derefter få adgang til det via P/Invoke. Tag et kig på WS SPI spec:
ftp://ftp.microsoft.com/bussys/Winsock/Winsock2/WSSPI22.DOCftp://ftp.microsoft.com/bussys/Winsock/Winsock2/WSSPI22.DOC

Andre referencer 3


Ønsker du helt sikkert at skrive din egen?


WinPCap gør et fremragende arbejde med at fange pakker. SharpPcap gør et lige så godt arbejde med at lade dig bruge WinPCap fra C #. Begge er frie og tror jeg, open source. [4] [5]


(Jeg er ikke sikker på, om WinPCap bruger LSP under emhætten, men det endelige resultat er, at du kan inspicere pakker, så det kan bare være det, du vil)