PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : net send-Syntax


huha
2004-04-26, 15:34:49
Morgen!

Um es vorweg zu sagen: Nein, ich hab' nicht die Intention, irgendwelche nervigen "Ich-spamme-mal-kurz-das-Internet-zu"-Programme zu schreiben, es geht nur um eine komfortable Möglichkeit, Sachen auf andere Rechner zu melden.

Ich würde mir gerne ein Programm schreiben, das mithilfe des Befehls "net send" einem anderen Rechner eine Nachricht schickt. Diese Nachricht wird später solche Sachen wie die CPU-Temperatur oder den Abschluß von irgendwelchen Render- oder Brennvorgängen beinhalten.
"An sich" ist das ja nicht arg schwierig, jedoch reizt mich eine Sache: Der Name des Absenders.
Normalerweise trägt die, auf dem Zielrechner aufpoppende, Nachricht als Absender immer den Namen des Rechners. Das ist zwar nicht unbedingt unpraktisch, jedoch würde ich gerne anstatt dessen so etwas wie "Temperatur" oder den Namen eines Programms einfügen. Weiß jemand, wie das geht?

Danke!

-huha

firewars
2004-04-26, 16:18:26
C:\>net send /?
Die Syntax dieses Befehls lautet:


NET SEND
{Name|*|/DOMAIN[:Name]|/USERS} Nachricht

Vielleicht hilft das ja :)

huha
2004-04-26, 16:37:00
Ja, das kenn' ich auch schon, da steht aber leider nicht, wie ich den Absendernamen ändern kann. ;(

-huha

Gast
2004-04-27, 08:31:29
NET_API_STATUS NetMessageBufferSend(
LPCWSTR servername,
LPCWSTR msgname,
LPCWSTR fromname,
LPBYTE buf,
DWORD buflen
);

Quelle: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netmessagebuffersend.asp

Aber warum schreibst du 'Temperatur' usw. nicht einfach in den Text?

Blumentopf
2004-04-27, 09:22:49
NetSend spoofing* ist der Lacher!!!

Folgender code ist in VB geschrieben:
(www.planet-source-code.com)

Const MAILSLOT_WAIT_FOREVER = (-1)
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const GENERIC_EXECUTE = &H20000000
Const GENERIC_ALL = &H10000000
Const INVALID_HANDLE_VALUE = -1
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Private Declare Function CloseHandle Lib "kernel32" (ByVal hHandle As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFileName As Long, ByVal lpBuff As Any, ByVal nNrBytesToWrite As Long, lpNrOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwAccess As Long, ByVal dwShare As Long, ByVal lpSecurityAttrib As Long, ByVal dwCreationDisp As Long, ByVal dwAttributes As Long, ByVal hTemplateFile As Long) As Long

Private Sub Command1_Click()
cake = SendMsg(Text1.Text, Text2.Text, Text3.Text)
End Sub

Function SendMsg(From1 As String, To2 As String, Text3 As String) As Long
Dim rc As Long
Dim mshandle As Long
Dim msgtxt As String
Dim byteswritten As Long
Dim mailslotname As String
' name of the mailslot
mailslotname = "\\" + To2 + "\mailslot\messngr"
msgtxt = From1 + Chr(0) + To2 + Chr(0) + Text3 + Chr(0)
mshandle = CreateFile(mailslotname, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, -1)
rc = WriteFile(mshandle, msgtxt, Len(msgtxt), byteswritten, 0)
rc = CloseHandle(mshandle)
End Function


Wenn du keinen VB Compiler hast kann ich eine .exe hier anhängen. Sollte problemlos ohne installation auf allen Windows Systemen laufen.

Grüße Blumentopf

*Nachrichten ans Netzwerk mit falschem Absender