Ich habe vor kurzem an einer Exploit-Entwicklung gearbeitet, um mich auf einen Trainingskurs vorzubereiten, und ich bin auf ein Problem mit einem Tutorial gestoßen. Ich habe mit allen Tutorials, die ich finden kann, gefolgt, mit Python im Gegensatz zu der Sprache die Tutorials verwendet, aus Vorliebe. Ich versuche, alles zu crosscodieren, aber ich kann nicht herausfinden, wie man Perls Pack () Funktion crosscode.
TL; DR: Ich versuche, dies in Python zu übersetzen:
%Vor%Ich habe Pythons struct.pack () -Funktion gefunden, aber wenn ich
benutze %Vor%, es stoppt das Programm und funktioniert nicht. Was mache ich falsch?
Dies ist mein gesamter Quellcode
%Vor% Verwenden Sie die "L<"
pack-Vorlage anstelle von "V"
. Dies sollte in Perl und Python funktionieren. N
und V
sind eine ältere Perl-Methode zur Angabe der Endianität, und <
und >
sind die neuere Methode. Es sieht so aus, als wenn Python pack
von Perl entlehnt hat, dass es nur die neuere, flexiblere Schnittstelle brauchte.
Bearbeiten: Python möchte den <
vor den Typspezifizierer, während Perl es nach möchte. Nicht ganz so kompatibel: (
Pythons struct.pack
verwendet das erste Zeichen für die Endianität / Größenvariation und dann eine oder mehrere für den Datentyp . Perls V
bedeutet 32bit unsigned int / little-endian.
Das Python-Analog ist struct.pack('<I', 0x773D10A4)
.
Ich habe bereits in Python übersetzt und ich habe bereits für MP3-Konverter versucht. Hier ist Ihre Antwort:
%Vor%