-
Notifications
You must be signed in to change notification settings - Fork 2
/
tucker.py
43 lines (29 loc) · 1.26 KB
/
tucker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import argparse
class Tucker:
def __init__(self, zip_path: str, jpg_path: str, output_path: str) -> None:
self.zip_file_path = zip_path
self.jpg_file_path = jpg_path
self.output_file_path = output_path
def open_zip(self) -> bytes:
with open(self.zip_file_path, 'rb') as zip_obj:
return zip_obj.read()
def open_jpg(self) -> bytes:
with open(self.jpg_file_path, 'rb') as jpg_obj:
return jpg_obj.read()
def combine(self) -> None:
zip_file_data = self.open_zip()
jpg_file_data = self.open_jpg()
combined_file = jpg_file_data + zip_file_data
with open(self.output_file_path, 'wb') as output_obj:
output_obj.write(combined_file)
print("[+] Data combined!")
def main() -> None:
parser = argparse.ArgumentParser(description="Hide a zip file at the end of a jpg.")
parser.add_argument('--jpg', required=True, dest="jpg_file_path")
parser.add_argument('--zip', required=True, dest="zip_file_path")
parser.add_argument('--output', required=True, dest="output_file_path")
args = parser.parse_args()
tucker = Tucker(args.zip_file_path, args.jpg_file_path, args.output_file_path)
tucker.combine()
if __name__ == "__main__":
main()