Perls Pack ('V') Funktion in Python?

8

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%     
Schinza 17.06.2011, 17:38
quelle

4 Antworten

11

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: (

    
hobbs 17.06.2011 17:42
quelle
8

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) .

    
phihag 17.06.2011 17:42
quelle
2

Ich habe bereits in Python übersetzt und ich habe bereits für MP3-Konverter versucht. Hier ist Ihre Antwort:

%Vor%     
cybseccrypt 28.03.2016 21:10
quelle
1

Das ist genau was du willst. Wie wäre es mit dem Training?

%Vor%     
Nick X 16.11.2013 14:11
quelle

Tags und Links