Page 1 sur 2

[RESOLU] Outil de scan reseau

Publié : mar. 10/mai/2011 11:32
par Anonyme 2
Un autre lien pour ce logiciel s'il vous plait, ou le code source?: http://www.purebasic.fr/french/viewtopic.php?f=3&t=9614

Re: Outil de scan reseau

Publié : mar. 10/mai/2011 11:44
par falsam
Un sniffer brut de décoffrage. je ne sais plus de qui est ce code.

Code : Tout sélectionner

EnableExplicit

Structure IpHeader
  version.a
  tos.a
  totalLength.w
  ID.w
  flagOffset.w
  ttl.a
  protocol.a
  checkSum.w
  source.l
  destination.l
EndStructure

Structure TcpHeader
  sourcePort.w
  destinationPort.w
  sequenceNumber.l
  acknowledgeNumber.l
  dataOffset.a
  flags.a
  windows.w
  checkSum.w
  pointer.w
EndStructure

#SIO_RCVALL=$98000001

Procedure main()
  Protected ipNet.l, wsa.WSADATA, socket.l, sin.SOCKADDR_IN, promiscuous_mode.l=1, *buffer, bufferSize.i, ip.IPHeader, tcp.TcpHeader, dat.s
  Protected received.i, sourcePort.u, destinationPort.u, ipSource.s, ipDestination.s
  
  InitNetwork()
  ExamineIPAddresses()
  ipNet = NextIPAddress()
  
  If WSAStartup_($202, @wsa)
    Debug "Impossible d'acceder au réseau"
    ProcedureReturn 0
  EndIf
  
  socket = SOCKET_(#AF_INET, #SOCK_RAW, #IPPROTO_IP)
  If socket = #INVALID_SOCKET
    WSACleanup_()
    Debug "Impossible de créer le socket"
    ProcedureReturn 0
  EndIf
  
  sin\sin_addr = ipNet
  sin\sin_family = #AF_INET
  If bind_(socket, @sin, SizeOf(SOCKADDR_IN))
    WSACleanup_()
    Debug "Ecoute impossible"
    ProcedureReturn 0
  EndIf
  
  If ioctlsocket_(socket, #SIO_RCVALL, @promiscuous_mode)
    WSACleanup_()
    Debug "Impossible de passer en mode promiscuous"
    ProcedureReturn 0
  EndIf
  
  
  bufferSize = 2048
  *buffer = AllocateMemory(bufferSize)
  Repeat
    received = recv_(socket, *buffer, bufferSize, 0)
    If received > 0
      dat = Space(received - SizeOf(IpHeader)-SizeOf(TcpHeader))
      CopyMemory(*buffer, @ip, SizeOf(IpHeader))
      CopyMemory(*buffer+SizeOf(IpHeader), @tcp, SizeOf(TcpHeader))
      CopyMemory(*buffer+SizeOf(IpHeader)+SizeOf(TcpHeader), @dat, Len(dat))
      
      If ip\protocol = 6 ;protocole TCP
        sourcePort = ntohs_(tcp\sourcePort)
        destinationPort = ntohs_(tcp\destinationPort)
        ipSource = IPString(ip\source)
        ipDestination = IPString(ip\destination)
        
          Debug ipSource+":"+Str(sourcePort)+" => "+ipDestination+":"+Str(destinationPort)
          Debug Left(dat, 20)
          Debug "---"
      EndIf
    EndIf
    
  ForEver
  
  closesocket_(socket)
  WSACleanup_()
  
  ProcedureReturn 0
EndProcedure

main()
End

Re: Outil de scan reseau

Publié : mar. 10/mai/2011 11:47
par Anonyme 2
Ok merci, je vais voir ca :)

Re: Outil de scan reseau

Publié : mar. 10/mai/2011 12:25
par Cls
Je retrouve le code source et je te le poste.

A+

Re: Outil de scan reseau

Publié : mar. 10/mai/2011 14:15
par Cls
Tu trouveras les sources fonctionnelles par ici : http://s354293420.onlinehome.fr/perso/RIAS.rar

En cas de question, n'hésite pas.

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 12:44
par Kwai chang caine
Splendide programme ... 8O
Comme dab pas tout compris à quoi ça sert mais c'est du boulot de pro
Merci beaucoup pour le partage 8)

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 13:44
par Anonyme 2
Yo,
@Cls
Kwai a d'ja tout dis ^^
@falsam
J'ai un ptit problème quand j'lance ton prog: impossible de créer le socket -> qu'est-ce que j'fais?

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 16:39
par falsam
Dzoumaka a écrit : @falsam
J'ai un ptit problème quand j'lance ton prog: impossible de créer le socket -> qu'est-ce que j'fais?
Ooops désolé d'avoir oublier d'apporter cette précision. Dans les options du compilateur, coche la case L'application nécessite les droits administrateurs

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 19:10
par Anonyme 2
Yo,
Effectivement, ca marche :)
Par contre, tu pourrais m'dire comment il marche et à quoi il sert s'teu plait, parce que je ne comprends pas grand chose :?

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 21:11
par Cls
Ça permet de capter tout ce qui passe par ta carte réseau. En l’occurrence ici, ça affiche tout ce qui provient du traffic TCP (voir If ip\protocol = 6 ;protocole TCP). ;)

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 21:21
par Anonyme 2
Ah ok :)
Et le code source de falsam a le même fonctionnement? Je n'ai pas trop compris non plus :/

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 21:47
par Cls
Je parlais du code de falsam ;)

Mon code permet de vérifier qu'une adresse IP est allouée et que le serveur répond.
Il propose également des outils réseaux (scan de ports, tracert, géolocalisation) ainsi qu'un recherche des ordinateurs "UP" sur le réseau local.

Re: Outil de scan reseau

Publié : mer. 11/mai/2011 22:22
par Anonyme 2
Ah ok, j'avais pas compris :?

Re: Outil de scan reseau

Publié : ven. 13/mai/2011 11:54
par Anonyme 2
Yo,
Par contre, pour le code de falsam, je ne comprends pas comment il pourrait nous afficher quoi que ce soit si il n'y a pas de fenêtre comportant les informations :?

Re: Outil de scan reseau

Publié : ven. 13/mai/2011 12:13
par Mindphazer
Faut que tu le lances en mode debug