HEX-Array dynamisch verändern? Problem!

eXus49

Grünschnabel
Hi!

Wie kann ich einen HEX-Array dynamisch verändern?
Code:
char *decStub;
    sprintf(decStub, "\xC7\x45\xF4\x00\x00\x40\x00\xC7\x45\xF0"
                 "\x%c%c\x%c%c\x00\x00\x8B\x45\xF4\x05\x%c%c\x%c%c\x00\x00\x89\x45\xF4\xC7\x45\xFC"
                 "\x00\x00\x00\x00\xEB\x09\x8B\x4D\xFC\x83\xC1\x01\x89\x4D"
                 "\xFC\x8B\x55\xFC\x3B\x55\xF0\x7D\x22\x8B\x45\xF4\x03\x45"
                 "\xFC\x8A\x08\x88\x4D\xF8\x0F\xBE\x55\xF8\x83\xF2\x0F\x88"
                 "\x55\xF8\x8B\x45\xF4\x03\x45\xFC\x8A\x4D\xF8\x88\x08\xEB"
                 "\xCD\xFF\x65\xF4",chSize[2], chSize[3], chSize[0], chSize[1],
                  chOEP[2], chOEP[3], chOEP[0], chOEP[1]);
Das ist mein aktueller Code, und so funktioniert es (natürlich) nicht!
Fehler:
Code:
\x used with no following hex digits
Wenn ich die "\x" wegmache (an den Stellen, an denen das %c steht), kommt folgender Fehler:
Code:
Zugriffsverletzung
Wenn ich die %c durch %x (Hex-Werte) ändere, kommt ebenfalls die "Zugriffsverletzung"-Meldung!


Könnt ihr mir helfen?

mFg
eXus49
 
Hat wirklich niemand ne Idee Ich sitze jetzt seit heute morgen auf diesem Problem fest!!
Das muss doch irgendwie möglich sein...
ich habe z.b. einen char (oder DWORD, egal) mit dem Inhalt "1048" und will dann das das so in den code eingefügt wird:

"\x48\x10"

Bitte helft mir irgendwie!
 
Hi eXus49,

so wie ich das sehe, liegt der Fehler "Zugriffsverletzung" daran, dass du einen Null-Pointer als ersten Parameter übergibst. Die Variable decStub ist zwar deklariert, aber nicht initialisiert, d.h. sie weiß gar nicht, wo im Speicher sie eigentlich hinzeigen soll.

Ansonsten sollte %x die richtige Wahl sein, um eine char-Variable als Hexadezimalzahl auszugeben.

Gruß
PhoenixLoe
 
Und die erste Fehlermeldung liegt daran, dass irgendwo drin steht:

\x%c
\x muss immer eine Hexzahl danach haben, dasseine \x gehört einfach weg, dass ist zuviel

gruß
 
Zurück