TCPSend($socket, $data) data von inputbox

  • Ich wünschte ich könnte heute ein beispiel script mit hinzufügen, das ist mir aber nicht möglich da ich nicht an meinem heimpc bin.

    Ich versuche mich an einer Remote CMD, einfach um etwas über TCP zu lernen. Bisher habe ich lediglich einen einfachen server der die daten empfängt & dann die ausgabe von der cmd wieder absendet. Und einen Clienten der einen befehl wie "dir" sendet & natürlich die das ergebnis empfängt. Jetzt wollte ich aber nicht ständig in der source den befehl eintragen sondern mich per inputbox danach fragen lassen. Irgendwie mag das TCPSend nicht & sendet einfach nichts. ich habe also etwas herumprobiert die $data vorher testweise verschlüsselt, nichts. Wenn der wert vorher in der source gesetzt wurde reagiert TCPSend darauf indem er die daten sendet, Kommt der Befehl allerdings von außerhalb des programs dann passiert nichts, kein fehler nur ein nichts. Leider kann ich von meinem HomePc zurzeit nicht aufs internet zugreifen & bin deshalb auch hier auf eure hilfe angewiesen. Ich sehe keinen sinn darin warum TCPSend mir da einen streichspielt :huh:

    kurzes freihand beispiel
    $data = inputbox("","Befehl","dir")
    TCPSend($socket, $data)

    EDIT: also kurz gesagt wenn ich versuche $data mit einer Inputbox zu setzen dann kommt bim server nichts an.

  • Weil der Server grad nicht empfängt? Zeig uns doch mal das ganze Script


    Ich kann euch das script deshalb nicht zeigen weil mir die erforderliche internetverbindung fehlt.

    Der server läuft zu dem zeitpunkt & das script sendet immer nur dann wenn die variable aus dem script selbst kommt, wird sie durch sagen wir mal Inputbox oder FileRead declariert erkennt TCPSend sie nicht an.

    • Offizieller Beitrag

    Also irgendwie schreibst Du wirr!
    Erstens braucht man für TCP nicht unbedingt eine Internetverbindung und zweitens kannst Du Variablen nicht in einer Inputbox deklarieren. Du kannst ihnen vielleicht den Wert aus der Inputbox zuweisen, aber deklarieren geht nicht.
    Schreib erstmal zwei Scripte (Server- und Client-), die sich miteinander verbinden. Während das eine sendet, muss das andere auf Empfang sein, sonst klappt das nicht.

  • Also irgendwie schreibst Du wirr!
    Erstens braucht man für TCP nicht unbedingt eine Internetverbindung und zweitens kannst Du Variablen nicht in einer Inputbox deklarieren. Du kannst ihnen vielleicht den Wert aus der Inputbox zuweisen, aber deklarieren geht nicht.
    Schreib erstmal zwei Scripte (Server- und Client-), die sich miteinander verbinden. Während das eine sendet, muss das andere auf Empfang sein, sonst klappt das nicht.


    hmm ich weiß schon was du meinst, ich werde mal versuchen das script hier morgen zu präsentieren.
    ich habe wie gesagt keine internetverbindung auf dem pc wo das script(server/client) sich befindet. & der server empfängt auch ohne ein problem den gesendeten Befehl, jedoch akzeptiert wie schon gesagt TCPSend die var aus der InputBox nicht.

    Danke für eure Antworten!

  • So hier Server & client

    ich habe das aus den beispiel scripts ausgearbeitet die Autoit3 bereitstellt.
    Server:

    Spoiler anzeigen


    Client

    Spoiler anzeigen
  • Der Aufbau deines Server ist schrecklich.

    Du solltest erstmal die While 1 Schleife auf jeden Fall zu While Sleep(100) (beim Clienten akzeptieren) ändern, da ansonsten die CPU Auslastung in die Höhe schießt.

    Außerdem liest du einmal vom Stream und versuchst damit zu arbeiten statt solange den Stream zu lesen bis du entweder Daten bekommst oder einen vordefinierten Timeout überschreitest.
    Das ist auch logischerweise der Grund warum das mit einer Inputbox nicht funktioniert.

    Wenn die Verbindung zustande gekommen ist werden keine Daten geschickt sondern der User muss erstmal eine Nachricht abtippen.
    Da der User aber paar Sekunden dafür braucht und der Server direkt Daten erwartet springt er nicht bei dem If $sReceived <> "" rein.

    • Offizieller Beitrag

    Ich habe Dir mal die Server- und Client-Scripte umgeschrieben. Diesen ganzen Base64-Kram brauchst Du überhaupt nicht.
    Außerdem verwendest Du _Crypt_DecryptData zum verschlüsseln und generierst/löschst andauernd den Key. Alles gar nicht nötig.
    Server:


    Client:

  • So ich hab das script erweitert & alpines vorschlag mit eingebaut.

    Server:

    Spoiler anzeigen

    Client:

    Spoiler anzeigen

    Als nächstes Plane ich eine einmalige Passwort abfrage, damit nicht jeder beliebige Port Sniffer auf den Computer zugriff bekommt.

    EDIT: ich habs nochmal verändert, jetzt habe ich versucht zu mir selbst übers internet zu verbinden & bekomme häufger nur die hälfte der abgesendeten Daten. Ich sehe nicht warum


    Server Sendet:

    Spoiler anzeigen
    Code
    0xD9B0DE3377DD763AD4D634F8D5D967C26C1DBD566CFC3189B6C8A4903F1A506BCDC1BA1D0B331E16226F50FE0BDBB3244323F6749A937F4939D14064CD2A64F80CA1065311F4335CF22B657331E2C56CF805C6D93FBE8DD20E1881CBC4A1FF08B0F33BC599D946A02CA1861C7C071756CCC37CF668FC82CA9BA74F9E082944444231E97E4F6149910716D48157C73FD67927E92CB71D8AB695C88B71E88615450D8B42B84B3095A054B20696BC9BE18B6C51BD68A0C37FCC2AF833791076DF4DF1DA90A059B25BF9A500B253A6F642002AD8BDA0B4D407FBA9BF6AF6195374F435DB423F05BD645919B2FCE91872E6580F05945185AE727A30B1D4DCEF2B9F975D3A80D6155B0E76AF25ADC4CDB42A9506E79F2E72F3960220E88C3A8A024D251C4836FCB388E6DA016D4106DF0B71A08F246BC09AF46E5C3E1829B7E96AED228528F215116FE7136A32314E03FF371424C5848331432C9A6FD49E60F50057F95C90B33E5993D5D19A5AD5C1B4ED4E4A76F7569A6B8744B0004EB0420CD79F37F8BCCC97BB2BB4E5CE47E8A9ED6A6CEB202FE935373331F5B32A8A3E8C43ED009FC55A05C87756CD998FDEC8A2F9D045FC77B05A2BF30BFFAB4E8AA5D8A0FA74E07FE64161B79A1C8AE7741932A7C00EB97473FB56893B0CB71FA2B0B261531E60EB288F3B654B6B1F91B61215F45FDBF59453755BB3B4F47DD4E4DCA670700DAE8371AB5831EFF826059F50A0B31D31CF8E877E4479BBAD783A18CD6BE2D1A7CE56ECFC83354856B3FFF54F090027847B6E7A9A6440AED8FF36A4F9A0E6E9A87106BC77C1EE4132390BEA3ABEB61C0A74F52A40496AE76683EA44A7E34CD07C065561C18810FB523E6F0D6A2C7D26C4EF43BC0ABDD292E718100C4580E7484765118EE811F4B8789C93344CE14A8B253BDA3A94F6B76D0F79C9BA84C3CD5F9D80139B8B4297EF14B01F20FA93EF782744C80936665BF66AA949EE69F5757D226C68ABF547FECA34D140678F361FBA23215B9DBBDCB3B50C497E050464BC1F6FD30E399BBC4C665AA8C71AE5B8866FC140340B52E5A0E12F02272DDED430E1093518B15665FBB32376D628A4125B640E7CAD91044F27F44B5548F1329BF1E717287F97BABBF31448DE0E92A30DC6362AF12FC68C397DA4A9BB730F512CDA75B4C1A33527807F314A87EF32007336F61908494A6B3AEC821AF9B248CF17DA9C5E688AEA095206626513A37F9295C635C148F34E5DFA231BB9F7E01F4E9A683C6801049FAE222E4F14766721379A24CD14ACFEBC72D9C79A81C348EFC511003963F1437605F1EBC7EC91B9083002A3456A3699DECC92D3104A6E03DF0FF652066F8F80F8E946C0B3FEB842D9E7F1543D5190F7BA8B81D03A94CF7D7C2C5115F45F227CA0AE228B8104AB713DB8519454F39B82718D233E2FE43538C7BB3274CDCCF9C612DEC7E4C67C487B277FF800DA32D7ACE6DB85FDC3561A404450E75D5013385AD63210EDE57E843AEE82B09C91EC63F79D3AE499C4987AEE14404189154D69D484BB41FC19327DDB8105DEF84B65EFE3052BD8D360F7429570BECB594AE0AADD00E676D4430234400D3C186170A670BF15A64652FE22F9CB88BF3C8BA5F41C622531FA2C6075DF61A233CB4819FA3A4B4260DD8DA8B8F6309FE05CC969F4145A9B49C564BDA1451384EEC5D47F41623327102181650A6FDE4268F15A6FA9053C0E3412C995A74BA1415610ABFE47199A04F4D9D9BBC27B849C8DD8AD159C1E7E2E9A19EBC80EFD491A074F5B069DD8B1466505F584FA1B4D17502B5922E5F0FFDD663B2E2DB48E7B58C74FABB69A6AE9232634215C7D78EAF2036DD4922F2894A5CA0165C544875383E08E604733563BCBC44BA34CD0D3CDDEA11DC242FACC224A692407126994437693A3D4A81069222D2EE4920ABC6200751BE1FE1B6F7D12CBCA165A79AE8D00EFA3938CE3AB47AB9B28BA5F4874D8B292DEDCC7986DE200BB9240E2F1CE58D2185658B0FFABA672C70A1E5298026448CE980CFA365C7AA48C15C20DF08125C029CB2484308E2DAEE4F67CF6A45617C08BC793A92F0C3DBD41C0F5E8376F05F47309E5F2DA08E5B4017A222294313792C9F2A48FD4AD55A5A315C79CD9F54EB135D040E91AFBF5D3E103BF8BD0D97B379DA7AD2713D666ABD32108EAAE171611A2335DC3AB2B4B1CB3955A6B5D27005FAE4D33D3690C762255CE28145284A7EB8EE0D579042592A44F71C00E2806CB81B3896CEC13FC805380CC1897D758E24C0F53137FCF1DC54E5866D7A406523FFA8E952B616A32D3474539430BE77A0AED044AC34424C7889716D784DE1493C6E7A44841F0AE0765FCA523043490871DD54C6E63C1EE1980566A587E539E5B3ED34033FEFBFDF87F1804A29AB738AA11F4FF9F1D7E8D5C04804343F909E33317AD6BCE46F9D9E92EF93A7C18A8267540D437C8291734D7C9A897E7D0B6DAF62C15ADE45BFB21F1448EA3883DCDB7308532D1602325839AA705F3E00A6AD654D643EB3814182417F0A99799897CE5F97981408E47C7E7EFD514A0F2F7E4E28DDD00C11DDFFE738EB49AED9104E4C09E403405536F45DEFACA4E616643CCB19C0D3B8E0891AF86CA8612EDA1D15EBB184A7CB06BD188B2107A611EB997A5FD9D223D10DE233F077366E83668F85DAF37FB9AEB45DC82A587B12936C720934638F1BE540D140CF10DDF28A9B79BDE15721F879F484380471F956D2C1AA82A74FE6C9F890D07E023B23EF859963E59BBE7EFDC76F5760091079FFBF9715576F13739E93CDAE43D1F77E69AE44D8EC8EA93C5E726F175141A8FDE51752470F3F376F2BFFF0B72F9774D4391E43EAA0A25E1256B7791540CBC977D1F1231F052C6EDCA26E15F0A11FE7597BFE69971416ADBCB8026C59723E23797C71909C683C6AE02465450192E090D364C5B26FE529E4850A47429255178CB21A4B2189C24A6ECB8F34EC0837F30E9F8F6021054C19AE8E4077D1E019220FDEF2C51701C2093DD547ADA5B49415DAA29047C38FFF66B94671ABCB244BB9B478941A6889EF0E8B83DF20FE73C68778FB04C5A1D2E97E4A163F5A06C3FD444E66F6A92B94018E9CEC53D292E384CAF0E00079AF132852C3FA0C26CDD136AD1EB4AEEC87DB5BA748E9EB6735F2A754818FD239E4175FFF81775049B247DFB5A9735F13C772ED5879F45315127D2915B9B45194AD4CDBF3BF8C3B0A01891CFA1818E0AEDE262FEBE817BB5462DE894785CB8B8566BA74476B00DCAA5A3D4EA25774AB4613E85AAAE312B5F3721802211BA1317927A1415C21EF87C480B33D47A657850AAAD9BCCB303DCC2EDFB51ED3983D9C3C856AD5E01156724FF9993A5BD8D0B5ECC42125D6193940EE242689EBE3D454E44494E47

    Cliengt Empfängt:

    Spoiler anzeigen
    Code
    0x2484308E2DAEE4F67CF6A45617C08BC793A92F0C3DBD41C0F5E8376F05F47309E5F2DA08E5B4017A222294313792C9F2A48FD4AD55A5A315C79CD9F54EB135D040E91AFBF5D3E103BF8BD0D97B379DA7AD2713D666ABD32108EAAE171611A2335DC3AB2B4B1CB3955A6B5D27005FAE4D33D3690C762255CE28145284A7EB8EE0D579042592A44F71C00E2806CB81B3896CEC13FC805380CC1897D758E24C0F53137FCF1DC54E5866D7A406523FFA8E952B616A32D3474539430BE77A0AED044AC34424C7889716D784DE1493C6E7A44841F0AE0765FCA523043490871DD54C6E63C1EE1980566A587E539E5B3ED34033FEFBFDF87F1804A29AB738AA11F4FF9F1D7E8D5C04804343F909E33317AD6BCE46F9D9E92EF93A7C18A8267540D437C8291734D7C9A897E7D0B6DAF62C15ADE45BFB21F1448EA3883DCDB7308532D1602325839AA705F3E00A6AD654D643EB3814182417F0A99799897CE5F97981408E47C7E7EFD514A0F2F7E4E28DDD00C11DDFFE738EB49AED9104E4C09E403405536F45DEFACA4E616643CCB19C0D3B8E0891AF86CA8612EDA1D15EBB184A7CB06BD188B2107A611EB997A5FD9D223D10DE233F077366E83668F85DAF37FB9AEB45DC82A587B12936C720934638F1BE540D140CF10DDF28A9B79BDE15721F879F484380471F956D2C1AA82A74FE6C9F890D07E023B23EF859963E59BBE7EFDC76F5760091079FFBF9715576F13739E93CDAE43D1F77E69AE44D8EC8EA93C5E726F175141A8FDE51752470F3F376F2BFFF0B72F9774D4391E43EAA0A25E1256B7791540CBC977D1F1231F052C6EDCA26E15F0A11FE7597BFE69971416ADBCB8026C59723E23797C71909C683C6AE02465450192E090D364C5B26FE529E4850A47429255178CB21A4B2189C24A6ECB8F34EC0837F30E9F8F6021054C19AE8E4077D1E019220FDEF2C51701C2093DD547ADA5B49415DAA29047C38FFF66B94671ABCB244BB9B478941A6889EF0E8B83DF20FE73C68778FB04C5A1D2E97E4A163F5A06C3FD444E66F6A92B94018E9CEC53D292E384CAF0E00079AF132852C3FA0C26CDD136AD1EB4AEEC87DB5BA748E9EB6735F2A754818FD239E4175FFF81775049B247DFB5A9735F13C772ED5879F45315127D2915B9B45194AD4CDBF3BF8C3B0A01891CFA1818E0AEDE262FEBE817BB5462DE894785CB8B8566BA74476B00DCAA5A3D4EA25774AB4613E85AAAE312B5F3721802211BA1317927A1415C21EF87C480B33D47A657850AAAD9BCCB303DCC2EDFB51ED3983D9C3C856AD5E01156724FF9993A5BD8D0B5ECC42125D6193940EE242689EBE3D454E44494E47
  • Hi,

    versuch mal im Client Zeile 36 :
    "=" durch "&=" zu erstzten (ansonsten werden Daten, welche nicht $trenner enthalten, ignoriert) und "32768" durch "2048"

    und im Server die verschlüsselten Informertionen in 2048 Zeichen Paketen zu senden.

    Kann grade nicht testen ob es irgendetwas hilft.

    mfg
    Zeitriss

  • Hi,

    versuch mal im Client Zeile 36 :
    "=" durch "&=" zu erstzten (ansonsten werden Daten, welche nicht $trenner enthalten, ignoriert) und "32768" durch "2048"

    und im Server die verschlüsselten Informertionen in 2048 Zeichen Paketen zu senden.

    Kann grade nicht testen ob es irgendetwas hilft.

    mfg
    Zeitriss

    Das hab ich ja volle Kanne übersehen...

    Ich bin mir da ziemlich sicher das das der Fehler ist. Eigentlich sollte das aber selbstverständlich sein den bisher empfangenen Inhalt nicht zu verwerfen!

  • Das ist ja mal voll interessant, das habe ich ja noch gewusst dass, das geht mit &= O_O
    sehr schlau & danke. Ja das hilft mir super weiter. Ich habe mich gestern beim beobachten der verbindungen via Wireshark schon gefragt wie Autoit damit umgeht wenn mehere pakete gesendet werden.
    Sobald das Script ansehnlich ist werde ich es in der Script section veröffentlichen, damit jeder etwas davon hat!

    Ich hacke das Thema dann mal ab