WLAN Frames selbst senden

luigied

Mitglied
Hi @all,

ich bin dabei einen Vortrag über "Netzsicherheit mit Fokus mobile Kommunikation zu gestalten".

Dazu würde ich gerne ein kleines Programm erstellen/vorführen, welches präparierte Frames über WLAN an ein Netz sendet.

Jetzt habe ich zwar zum Theme "Netzprogrammierung in C/C++" jede Menge Informationen über Sockets gefunden, aber diese arbeiten ja auf Level 4 des OSI-Modells und ich muss doch auf Level 2 arbeiten, oder

Ist das, was ich vorhabe überhaupt möglich, oder muss ich dazu Assembler nutzen

Falls mein Vorhaben machbar ist, würde ich mich über Hinweise zu weiteren Informationen freuen. ;)

Mfg LuigiEd
 
Vllt. ist ja pcap bzw. winpcap was für dich.
Weiß allerdings nicht mehr, ob man damit überhaupt senden oder nur abfangen kann
 
Danke dir sheel,

sag mal, wo bekomme ich denn die benötigte Bibliothek her? Ich habe zwar den Winpcap-Treiber installiert, aber die pcap.h und die dazugehörige pcap.c finde ich nirgends.

mfg LuigiEd
 
Wow danke,

hab jetzt Beispielquelltext zum Testen heruntergeladen:
Code:
int main()
{
    pcap_if_t *alldevs;
    pcap_if_t *d;
    int i=0;
    char errbuf[PCAP_ERRBUF_SIZE];
	//char PCAP_SRC_IF_STRING[255];
    
    /* Retrieve the device list from the local machine */
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
    {
        fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
        exit(1);
    }
    
    /* Print the list */
    for(d= alldevs; d != NULL; d= d->next)
    {
        printf("%d. %s", ++i, d->name);
        if (d->description)
            printf(" (%s)\n", d->description);
        else
            printf(" (No description available)\n");
    }
    
    if (i == 0)
    {
        printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
        return 0;
    }

    /* We don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);
	return 0;
}

aber beim Compilieren meint der Compiler:
'PCAP_SRC_IF_STRING': nichtdeklarierter Bezeichner
"pcap_findalldevs_ex": Bezeichner wurde nicht gefunden.

Ich meine, zumindest die Funktion müsste doch definiert sein, oder? :D
 
Stehen ja drin, hab sie ja in den Projekt-Eigenschaften eingebunden.

Zusätzliche Include-Verzeichnisse: ../../../WpdPack/Include/

Bei Linker -> Eingabe
Zusätzliche Abhängigkeiten: wpcap.lib Packet.lib

und im Code über der main() steht noch #include "pcap.h"

Deswegen bin ich ja verwirrt. :)
 
Hallo hast du schonmal Raw-Sockets versucht?
Bei Stream Scokets werden alle Daten schön verpackt und das Betriebssystem kümmert sich um alle Low-Level-Details (Kommunikationsschicht - OSI Modell (5)).
Per Raw-Sockets ist es möglich auf einer tieferen Ebene auf das Netzwerk zuzugreifen.
Damit lässt sich alles verwirklichen was du benötigst denke ich.
Konkrete Sourcecode Beispiele könnte ich dir für Linux liefern.
 
Jetzt habe ich zwar zum Theme "Netzprogrammierung in C/C++" jede Menge Informationen über Sockets gefunden, aber diese arbeiten ja auf Level 4 des OSI-Modells und ich muss doch auf Level 2 arbeiten, oder

Ähm nein oder irre ich mich jetzt? Meiner Meinung nach liegst du bei Stream Sockets in Schicht 5 und mit der Sicherungsschicht (2) hast du nichts am Hut.
Auf die Vermittlungsschicht (3) möchtest du. Wie gesagt:
All what u need are Raw.Sockets.

MFG
 
Zurück