Ich arbeite an einer Hausaufgabe, wo wir ein Programm ausnutzen sollen, das anfällig für einen Pufferüberlauf ist. Wir tun dies, indem wir ein großes char
Array erstellen und es zuerst vollständig ohne Betriebsanweisungen füllen.Wie man Multi-Character Constant Warnung beheben kann
Ich glaube, was ich tun soll, ist bösartigen Code in irgendwo im Puffer kopieren (dieser Teil kann ich gut tun), und ändern Sie dann die Absenderadresse der ausnutzbaren Funktion irgendwie, so dass es auf wo der bösartige Code zeigt ist.
Ich kenne die Adresse, die ich einstellen möchte (sagen wir ½¾¿º
), aber ich bekomme einige Warnungen und weiß nicht, was sie verursacht werden.
Dies ist der Code (im Wesentlichen), die die Warnung verursacht:
int start_of_return_address = 10;
chars[start_of_return_address + 0] = '½';
chars[start_of_return_address + 1] = '¾';
chars[start_of_return_address + 2] = '¿';
chars[start_of_return_address + 3] = 'º';
Die Warnungen ich für jede Aufgabe bekommen sind:
warning: overflow in implicit constant conversion
warning: multi-character character constant
I durch Umwandlung bdbebfba
die Adresse bekam (Adresse bösartigen Code) in Zeichen (½¾¿º
).
Irgendwelche Ideen, was könnte die Warnung verursachen, oder eine andere Möglichkeit, wie ich eine Adresse in ein Zeichen-Array kopieren kann?
Bitte beachten Sie, dass dies für Hausaufgaben ist.
Wie haben Sie 'bdbebfba' in 'Zeichen' umgewandelt? – ArjunShankar