OVH Cloud OVH Cloud

Besoin d'aide + Questions

2 réponses
Avatar
Sivaller
Bonjour,
1er chose
Il y a quelque chose que je ne comprend pas,
je souhaiterai capturer les paquets réseaux de façon intégrale (@MAC
source,@MAC destination, taille paquet , Paquet du protocole) , winpcap le
fait mais utilise un pilote et je n'aime pas trop utiliser les pilotes des
autres.

Avec ceci
WSAStartup($101, wSada);
FillChar(xSockAddr,SizeOf(xSockAddr),0);
With xSockAddr do begin
sin_family := AF_INET;
sin_port := 4;
// sin_addr.S_addr := inet_addr(host);
//addr_in.sin_addr.S_un.S_addr = GetLocalIP();

End;


hsniffe := socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
i := bind(hsniffe, xSockAddr, sizeof(xSockAddr));

ça ne marche pas , mais ça marche avec IPPROTO_IP mais ça capture seulement
les paquets protocolaires c'est à dire sans l'@MAC source et destination.

Avez vous une solution pour capturer l'intégralité des paquets sans pilotes
?

2 émé chose :
BufferInLen := 1;
BufferOutLen := 1;
i :=WSAIoctl(hsniffe, SIO_RCVALL, @BufferInLen, sizeof(BufferInLen),
@BufferOutLen, sizeof(BufferOutLen), @BytesReturned, nil, nil);
WSAIoctl me renvoie -1 et pourtant les paquets sont capturés avec le flag
IPPROTO_IP.
Donc à quoi sert WSAIoctl qui me renvoie une erreur ?

3éme chose :
Je vais reprendre mon projet XM (Emulateur Jitter Intel 80x86) en esperant
que Windows démarre voir WXP , cependant je vais faire émuler le réseau via
un driver factis (NETGEAR je ne sais pas trop quoi) installé sur la machine
Windows émulé sachant que les drivers
réseaux dela machines sont les drivers adéquats propre à la carte réseau.
Question :
Si mon émulateur XM capture tous les paquets via Socket (.... SOCK_RAW) et
les expedient sur la session par l'intermediaire du driver factis, et
expedie les paquets envoyés par la session sur le reseau en envoyant tout le
header TCP avec la fonction SetSockOpt(sh,Winsock.IPPROTO_IP , IP_HDRINCL),
est ce que ca marche c'est à dire est-ce à partir de la session émulé
j'arriverai à voir les machines réseaux et accéder au fichiers partagé ou
arrivé à faire fonctionner les programme perso client-serveur?
Je pense que ça ne marchera pas.


Info : Je poserai d'autre questions à ce sujet.

Merci beaucoup ;

2 réponses

Avatar
Thierry
Sivaller wrote:

ça ne marche pas , mais ça marche avec IPPROTO_IP mais ça capture
seulement les paquets protocolaires c'est à dire sans l'@MAC source et
destination.

Avez vous une solution pour capturer l'intégralité des paquets sans
pilotes ?



Pourquoi ne pas utiliser un pilote ?? WinPCap est robuste (utilisé depuis
toujours par Ethereal) et est ouvert. Sinon t'as le sample passthru du DDK
qui te donne une base pour faire la même chose.
Avatar
Sivaller
> Pourquoi ne pas utiliser un pilote ?? WinPCap est robuste (utilisé depuis
toujours par Ethereal) et est ouvert.



Je n'aime pas trop utiliser les pilotes des autres ;

Sinon t'as le sample passthru du DDK
qui te donne une base pour faire la même chose.




Ecrire un pilote c'est trés complexe , et il n'existe pas de site spécialisé
en Français ce qui serait bien.
J'en aie déjà écrit un tout petit permettant de lire le registre CR3 et
déterminer de translater
l'@ virtuel --> @ physique depuis le registre CR3 , c'est tout.