VisualBasic-Tutorial #4: Netsend
In diesem Tutorial geht es um das versenden von Nachrichten im
Netzwerk per "Net send". Es wird auch beschrieben, wie man den
Absender der Nachricht fälscht, etc.
Beispiel für die Anwendung des Befehls:
Start->Ausführen: "Net Send LocalHost Hallo" -> sollte ein "hallo" an
den eigenen Rechner senden. (anstatt Localhost die eigene IP
verwenden ...)
Start->Ausführen: "Net Send Broadcast Hallo" -> sollte ein Hallo ans
gesamte Netzwerk senden.
In VisualBasic gibt es nun verschiedene Möglichkeiten solche
Nachrichten
zu versenden. die erste: man öffnet "net.exe" per Shell und übergibt
die nötigen Parameter.
Dies ist nicht unbedingt der beste Weg, da man auf die net.exe
angewiesen ist und diese unter umständen gesperrt ist (in manchen
Schulnetzwerken kann dies der fall sein)
Die andere Möglichkeit ist eine API bzw. eine DLL zu verwenden und
genau diese will ich in diesem Tutorial anschauen.
Das brauchen wir dazu:
|
Code: |
1:Declare Function NetMessageBufferSend Lib "Netapi32" (ByVal sServerName$, ByVal sMsgName$, ByVal sFr
:omName$, ByVal sMessageText$, ByVal lBufferLength&) As Long |
Zudem noch:
|
Code: |
1:StrConv(String, Conversion As VbStrConv)
|
Um Strings in andere Variabel-Typen zu verwandeln (wie zum Beispiel Unicode).
Was man zur API wissen sollte, ist dass alle Strings als Unicode
übergeben werden müssen.
Nun schauen wir uns mal an was wir der API-Funktion alles übergeben
müssen.
1. Argument: sServerName$ : Der Server über welche die Nachricht
gesendet werden soll. Hier geben wir einen Nullstring an, dann wird
die Nachricht über den eigenen Rechner verschickt.
2. Argument: sMsgName$ : Der Empfänger (PC-Name oder IP) als
Unicode-String.
3. Argument: sFromName$ : Der Sender (Im Normalfall der Name oder
die IP eines Rechners) als Unicode-String. Das schöne daran: Es kann
irgendetwas angegeben werden, zum Beispiel auch "Administrator" oder
der Name eines fremden PCs.
4. Argument: sMessageText$ : Die Nachricht die verschickt werden
soll (auch als Unicode-String)
5. Argument: lBufferLength& : Die Buffer-Länge. (In diesem Fall die
Länge der zu sendenden Nachricht.)
Kann ermittelt werden mit:
|
Code: |
7:len(StrConv(NACHRICHT,vbUnicode))
|
Wobei NACHTRICHT durch den zu versendenden Text ersetzt wird.
Hier nun ein kleines Beispiel-Quelltext welcher dem eigenen Rechner
eine solche Nachricht schickt:
|
Code: |
1:Private Declare Function NetMessageBufferSend Lib "Netapi32" (ByVal sServerName$, ByVal sMsgName$, B
:yVal sFromName$, ByVal sMessageText$, ByVal lBufferLength&) As Long
2:
3:Private Sub Form_Click()
4:NetMessageBufferSend "", StrConv("localhost", vbUnicode), StrConv("Ich", vbUnicode), StrConv("hallo"
:, vbUnicode), Len(StrConv("hallo", vbUnicode))
5:End Sub
6:
|
Falls Fragen auftauchen, schreibt sie ins Gästebuch oder schickt
mir ein Email: webmaster'at'black-silence'dot'ch Viele Grüsse
Euer Webmaster |