Forum: PC-Programmierung Problem mit Interpretation von Datentypen


von Manuel (Gast)


Lesenswert?

Hallo zusammen, ich komme irgendwie nicht weiter. Ich habe einen 
"String", der eigentlich eine binäre Sequenz in hexadezimaler 
Interpretation darstellen soll.

unsigned char source[] = 
"\x6a\x0a\x68\xc0\xa8\x00\x29\x68\x02\x00\x11\x5c\x89\xe6\x50";

Darin sind meine IP (192.168.0.41 an den Stellen 4,5,6 und 7 
[\xc0\xa8\x00\x29])
und mein offener Port (4444 an den Stellen 11 und 12 [\x11\x5c]) 
enthalten.


Ich möchte meine IP und meinen Port gerne einem Programm als Parameter 
übergeben (also mit argv), sie in die richtige Formatierung bringen und 
mit den Sequenzen meiner IP und meines Portes in char source ersetzen. 
Also so, das die binäre Sequenz am Ende auch wieder die korrekte Endian 
Schreibweise aufweist.

Grüße Manuel

von georg (Gast)


Lesenswert?

Manuel schrieb:
> Ich habe einen
> "String"

Ein String ist dein Beispiel nicht, weil x00 enthalten ist, da hören 
Strings auf und die üblichen Funktionen wie strlen sind nicht anwendbar. 
Also handelt es sich um arrays, deren Länge anderweitig bekannt sein 
muss.

Georg

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Manuel schrieb:
> sie in die richtige Formatierung bringen

D.h. als String, "192.168...." ?

Manuel schrieb:
> Also so, das die binäre Sequenz am Ende auch wieder die korrekte Endian
> Schreibweise aufweist.

Was verstehst du unter "korrekt"? Die Byte Order des aktuellen 
Computers, oder die Network Byte Order, welche man z.B. via sockaddr an 
connect() übergibt?

von Manuel (Gast)


Lesenswert?

Niklas G. schrieb:
> Was verstehst du unter "korrekt"? Die Byte Order des aktuellen
> Computers, oder die Network Byte Order, welche man z.B. via sockaddr an
> connect() übergibt?

Das kann ich ehrlich gesagt nicht sagen. Es sollte hald wie beschrieben 
eingefügt werden. So wie sie jetzt in der Variable source drin stehen.

192.168.0.41 -> \xc0\xa8\x00\x29
4444 -> \x11\x5c

oder kann ich die Variable source irgendwie zerteilen und wieder 
zusammenfügen um das was ich will zu bewerkstelligen?

LG Manuel

von Manuel (Gast)


Lesenswert?

Tut mir leid, ich war wohl überarbeitet. Hab gerarde gemerkt das es mit 
memcpy tadellos funktioniert.

LG Manuel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.