@AlessandrIT

Python — как открыть любой файл через архиватор?

Суть проста.Имею файл, в нутре которого лежит ещё файлик.Создавалось через copy /b 1.jpg + 2.rar 3.jpg

Требуется из Питон скрипта достать спрятанный файл.

Какие есть варианты?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 2
@rPman
Ищите сигнатуру rar, затем читая файл с э того места записывайте его в новый с нужным именем.

Так как jpeg файл поток байт случайный, существует мизерная вероятность что в нем тоже попадется такая сигнатура, поэтому ищите в файле все нужные сигнатуры и сохраняйте несколько файлов в этом случае, затем проверяйте на целостность и оставляйте тот что не битый.
Ответ написан
@AlessandrIT Автор вопроса
Благодарю за помощь rPman и Сергея Борисова с параллельной ветки форума за подсказки.

Для тех кто вздумает использовать мой опыт предоставляю код:
try: 
	namefile=input("File-Cover: ") 
	size = os.path.getsize(namefile)
	print(size)
	with open(namefile, 'rb') as file1: 
		read1=file1.read()
except FileNotFoundError: 
	print("[x] File: '"+str(namefile)+"' is not defined!")
	raise SystemExit
try: 
	zipfile=input("Zip-File: ")
	with open(zipfile, 'rb') as file2: 
		read2=file2.read()
except FileNotFoundError: 
	print("[x] File: '"+str(zipfile)+"' is not defined!")
	raise SystemExit 
namefile=input("File-Result: ") 
with open(namefile, 'wb') as file3: 
	file3.write(read1)
	file3.write(read2)
	print("[+] File: "+str(namefile)+" successfully overwritten!")
	file3.close()
with open('OUT.rar', 'wb') as file4:
	file3 = open(namefile, 'rb')
	file3.read(size)
	file4.write(file3.read())
	file4.close()


Учтите что получение size надо делать заранее и сохранять в отдельное место - это смещение для дальнейшего чтения

Говнеца в коде хоть и прилично но алгоритм понять можно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы