Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 09:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB] TCP Packet als Bytes senden

Discussion on [VB] TCP Packet als Bytes senden within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2010
Posts: 14
Received Thanks: 0
[VB] TCP Packet als Bytes senden

Guten Abend,
ich versuche einem Server per TCP ein Packet für einen Request von meinen Accountdaten zu schicken, die benötigten Packets habe ich bereits gefiltert, analysiert und nachgebaut, einziges Problem ist, der Header des Packets, welches ich an den Server schicke ist ein Kauderwelsch wenn ich ihn als Ascii oder Dezimalzahl darstelle, das heißt er muss als ein Bytearray verschickt werden.

Mein Problem ist jetzt, dass die anderen Daten als String gespeichert werden und ich zwar die einzelnen Strings in Bytearrays formatieren kann, jedoch schlagen alle Versuche fehl das ganze in ein großes Packet zu stopfen und zu verschicken.
Ich habe sowieso irgendwie das Gefühl ich benutze hier die Holzhammermethode und es geht eigentlich viel viel eleganter, ich weiß nur nicht wie.

Also falls jemand irgendwie nen Ansatz für mich hat wie ich das ganze eleganter lösen könnte würde ich mich wirklich freuen.

Nachdem ich meinen Code hier nochmal angeschaut habe bete ich um einen eleganteren Lösungsweg. ;D

Hier noch der relevante Code und Ablauf wie ich das Packet zusammenstelle:
Code:
Dim account As String //wichtige Daten für das Packet
Dim agent As String

//Funktion um String in ein Bytearray zu encoden
Public Function TextStringToByteArray(ByRef str As String) As Byte()
        Dim enc As System.Text.Encoding = System.Text.Encoding.Default

        Return enc.GetBytes(str)
End Function

//Funktion die das fertige Packet baut
Private Function buildPacket()
        Dim message As Byte() = {"01,81"} //zu verschickende Nachricht, Header als Startwert
        Dim b_account as Byte() = TextStringToByteArray(account)
        Dim b_agent as Byte() = TextStringToByteArray(agent)

        //Zusammenfügen der Arrays
        Array.Resize(message, message.Length + b_account.Length)
        Array.Copy(b_account, 0, message, message.Length - b_account.Length, b_account.Length)
        Array.Resize(message, message.Length + b_agent.Length)
        Array.Copy(b_agent, 0, message, message.Length - b_agent.Length, b_agent.Length)

        //return message

        //Ausgabe meines Arrays als String zur Überprüfung
        Dim strf As String = ""
        For Each b As Byte In b_length
            strf = strf + b.ToString("x").ToUpper
        Next
        Return strf
End Function
ravvon is offline  
Old 04/24/2014, 12:41   #2

 
x]vIrus[x's Avatar
 
elite*gold: 37
Join Date: Apr 2004
Posts: 2,154
Received Thanks: 250
schon mal dran gedacht, dass das, was du mit deinem packet editor als string siehst gar keine strings sind? sondern bytes?
warum verschickst du dann deine bytes als string?

du kannst auch mehrere byte arrays senden, du musst diese nicht erst in ein array packen
PHP Code:
    Dim arrMsg As Byte() = { &H01, &H81, ... }
    
Dim arrAccount As Byte() = { &H01, &H81, ... }
    
Dim arrAgent As Byte() = { &H01, &H81, ... }

    
Using tcpClient As New System.Net.Sockets.TcpClient()
        
tcpClient.Connect("127.0.0.1"10001)
        
Using s As System.Net.Sockets.NetworkStream tcpClient.GetStream()
            
s.Write(arrMsg 0arrMsg .Length)
            
s.Write(arrAccount 0arrAccount .Length)
            
s.Write(arrAgent 0arrAgent .Length)
            
vielleicht noch s.Flush()
        
End Using 'Verbindung schließen
    End Using 
x]vIrus[x is offline  
Old 04/24/2014, 19:23   #3
 
elite*gold: 0
Join Date: Jan 2010
Posts: 14
Received Thanks: 0
Ja das gleich alles als Bytearrays zu definieren wäre eine Idee, aber da die Strings dynamisch sind und erst während dem Login aus einer Quelldatei ausgelesen werden kann ich die leider nicht vorher definieren.
Aber dafür hat mir deine Version eines TCP Clients sehr geholfen, wusste nicht das man die ganzen Daten auch einzeln senden kann, ist natürlich viel angenehmer als alles zusammenzufügen.

Mfg ravvon
ravvon is offline  
Old 04/25/2014, 13:09   #4

 
x]vIrus[x's Avatar
 
elite*gold: 37
Join Date: Apr 2004
Posts: 2,154
Received Thanks: 250
dann poste doch mal mehr code, anhand deines schnipsels geht das nicht hervor
x]vIrus[x is offline  
Reply


Similar Threads Similar Threads
Autoit 1 Packet Senden ?
06/09/2013 - AutoIt - 5 Replies
Hallo ich habe wieder eine kleine frage bei packets und so bin ich nicht sehr gut :) Ich habe wincap instaliert,,und jetzt ich habe mit wpe ein packet das ich senden möchte gefunden das packet ist: "57 49 4e 7c 31 38 38 38" in decoded text ist das =" WIN|1888" Und Ich will bei auto it es simple machen es soll in Process name.exe dieses packet immer wider senden und der socket endert sich immer wider also beim jedem relog endert er sich ,kan mir jemand helfen ? :) While 1 .... WEnd
WPE Packet senden
06/30/2011 - General Coding - 2 Replies
hey, bin mir nicht ganz sicher wohin damit, deswegen kommt es einfach mal nach Gamehacking... ich wollte mal die Packetsenden-Funktion von WPE Pro testen. Leider kann ich keine Verbindung aufbauen, bekomme immer das hier: http://img848.imageshack.us/img848/3057/180620112 .png hoffe, dass mir jmd helfen kann... ging bei dem Versuch um das liken bei einem YT-Video
[C++] TCP Packet senden
05/28/2011 - C/C++ - 1 Replies
Kann mit jemand erklären, wie ich in C++ TCP Packets senden kann? Ich will damit einfach nur meine FritzBox zum reconnecten bringen...
(Winsock hook) replace/filter packet bytes
11/18/2010 - General Coding - 3 Replies
Hi guys Please, can someone explain me or help me about my winsock hook?! I need to change the first and second bytes of the packet I've received... example: I'm receiving the packet:
Interlude 11 bytes init packet wtf??
02/07/2008 - Lineage 2 - 0 Replies
Hello! in some interlude servers, first packet(init) length is about 11 bytes, when im expecting a more huge packet(about 186 bytes) containing: protocolVersion (Integer) sessionId(Integer) rsaPublicKey (byte) blowfishKey (byte) gg1 (byte) gg2 (byte) gg3 (byte)



All times are GMT +2. The time now is 09:36.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.