Files
osc2025/upload.py
2025-03-21 03:39:25 +08:00

35 lines
736 B
Python
Executable File

#!/usr/bin/env -S python3
from pwn import *
from struct import pack
from tqdm import tqdm
print(sys.argv)
if len(sys.argv) < 2:
print("no args for serial device")
exit()
while True:
kernel = open("kernel8.img", "rb").read()
r = serialtube(sys.argv[1], convert_newlines=False)
# send size
sz = len(kernel)
print("size:", sz)
r.send(pack("<I", sz))
print(r.recvuntil(b"$").decode())
# send kernel
splitsize = 1000
for i in tqdm(range(len(kernel) // splitsize), unit="KB"):
r.send(kernel[i * splitsize : (i + 1) * splitsize])
r.send(kernel[len(kernel) // splitsize * splitsize:])
sleep(1)
r.send(b"\n")
r.interactive()
r.send(b"\nreboot\n")
sleep(10)