net send in .dll ?

  • hi leute!

    der befehl der eingabeaufforderung "shutdown" ist eine extra .exe irgendwo im system... also müsste der befehl "net send" ja auch eine .exe haben oder wenigstens in einer .dll zu finden sein! :hm:

    ich frage weil mein kumpel ein tool für net send hat wo man seinen namen manipulieren kann, also der empfänger einen von ihm ausgewählten namen angezeigt bekommt!! das würde ich gern in eines meiner älteren skripte einbauen!
    weiss jemand wie ich das mache, da och ja direkt in der eingabeaufforderung den namen nicht manipulieren kann!!?? :weinen:

    freue mich auf vorschläge!

    mfg | mR. sEx p!sT0Ls

    • Offizieller Beitrag

    Hallo!

    Die Funktion die du suchst heisst NetMessageBufferSend und befindet sich in der NetApi32.DLL!

    Zum ausführen der Funktion muss allerdings der Nachrichtendienst laufen!

    Hier die Funktion umgesetzt in AutoIt:

    Spoiler anzeigen
    [autoit]

    Func _NetSend ($sTo, $sText, $sFrom = @ComputerName)

    [/autoit] [autoit][/autoit] [autoit]

    ; Strings in WideChar umwandeln
    $nBuffersize = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sTo, "int", -1, "ptr", 0, "int", 0)
    $wsTo = DLLStructCreate("byte[" & 2 * $nBuffersize[0] & "]")
    DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sTo, "int", -1, "ptr", DllStructGetPtr($wsTo), "int", $nBuffersize[0])

    [/autoit] [autoit][/autoit] [autoit]

    $nBuffersize = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sText, "int", -1, "ptr", 0, "int", 0)
    $wsText = DLLStructCreate("byte[" & 2 * $nBuffersize[0] & "]")
    DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sText, "int", -1, "ptr", DllStructGetPtr($wsText), "int", $nBuffersize[0])

    [/autoit] [autoit][/autoit] [autoit]

    $nBuffersize = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sFrom, "int", -1, "ptr", 0, "int", 0)
    $wsFrom = DLLStructCreate("byte[" & 2 * $nBuffersize[0] & "]")
    DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0x00000001, "str", $sFrom, "int", -1, "ptr", DllStructGetPtr($wsFrom), "int", $nBuffersize[0])

    ; DLL-Funktion aufrufen
    $ret = DllCall("NETAPI32.dll", "long", "NetMessageBufferSend" _
    , "long", 0 _
    , "ptr", DllStructGetPtr($wsTo) _
    , "ptr", DllStructGetPtr($wsFrom) _
    , "ptr", DllStructGetPtr($wsText) _
    , "long", DllStructGetSize($wsText) _
    )

    Return $ret[0] ; Rückgabewert 0 = Message gesendet
    EndFunc

    [/autoit]