Win3x.Org

Windows & DOS Community

Décoder ce format d'image de disquette étrange

Forum rules

Pour tout sujet impliquant un système d'exploitation daté de 2000 à nos jours, merci de le publier dans la section intitulée « Informatique moderne ».

Post Reply   Page 1 of 2  [ 13 posts ]
Jump to page 1 2 »
Author Message
Deksor
Post subject: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 00:52
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Salut !
Je suis sur un os : j'ai une application qui contient des images de disquettes, mais celles-ci sont dans un format inconnu et je désirerai toutes les extraire.
Du coup je suis à la recherche d'aide pour décoder tout cela.

Voici les fichiers en question : http://www.mediafire.com/file/c9iwiq74 ... S.zip/file
Pour l'instant voilà où j'en suis :
Voici le début du fichier 0004.MZ2
en-tete.gif
En rouge il y a ce qui semble être le nom de la disquette (faisant 11 caractères)
En jaune ce sont les noms des fichiers.
En bleu ce sont des octets dont je n'ai pas trouvé la signification mais qui sont toujours là et peuvent (mais pas toujours) se répéter (une date ? des droits ?)
En vert ce sont les pointeurs qui pointent à l'endroit où débute le fichier.
Ceux-ci sont des entiers de 32 bits ici stockés en petit boutisme. 0x45 0x38 0x00 0x00 se traduit par l'adresse 0x00003845 en hexadécimal.
Lorsque l'on va à cette adresse dans le fichier, on arrive effectivement sur le début du fichier (celui-ci étant le premier fichier de la disquette, pas de doute, ces 4 octets sont bien l'adresse).
Ensuite il y a 4 autres octets mais je ne sais pas non plus ce qu'ils font.
fichier1.gif

Chaque fichier semble être chiffré ou compressé ... je ne sais pas exactement, mais en tout cas il n'y a plus aucune chaîne de caractères visible.
Ce que je remarque en revanche, c'est qu'ils commencent tous pas "0x00 0x05" et je crois qu'il y a une séquence de 13-14 octets qui suit. Ensuite j'imagine qu'il s'agit du fichier en lui-même. S'il y a bien 13-14 octets après 0x00 0x05, je ne sais pas ce qu'ils font non plus.

Et effectivement si l'on va à l'adresse du second fichier (0xCE 0x89 0x01 0x00 qui se traduit en 0x000189CE, petit boutisme oblige) :
fichier2.gif
On retrouve de nouveau 0x00 0x05


... voilà tout ce que j'ai trouvé pour le moment. Si vous avez des idées, ou même que vous connaissez CE format en particulier, faites-moi signe :D


Top
Profile Quote
Joet BERNARD
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 01:34
Modérateur
User avatar
Offline
 
Posts: 2875
Joined: 19 Mar 2016 20:33
Retro PC: Compaq Presario 1926, Celeron 400 MHz, 192 Mo RAM
 
Euh... Ton lien est déjà mort 😅😅😅
[ img ]

_________________

Accueil de mon Index de sites
Accueil de WINJOY Signé JARB dans la place
Collection à peu près à jour
Mon nouveau serveur Discord
KB835732


Top
Profile Quote
Deksor
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 02:14
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Sal*perie ! Il m'avait filé un mauvais lien. Maintenant c'est bon.


Top
Profile Quote
Deksor
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 02:38
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Ah j'ai une autre information : le troisième octet du fichier indique le nombre de fichiers contenus

chaque nom de fichier est précédé du chemin dans lequel il se trouve (le chemin peut faire 51 caractères maximum, "/" inclus). Le premier nom de répertoire est toujours à l'adresse 0xB9. Le nom du fichier se trouve donc 51 octets après. Le prochain chemin se trouve 63 octets plus tard. Et ainsi de suite jusqu'aux données des fichiers.


Top
Profile Quote
INDEPTEKNO
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 03:08
Membre inscrit
User avatar
Offline
 
Posts: 809
Joined: 04 Dec 2007 16:51
Retro PC: COMPAQ PRESARIO 486SX25
 
Sur internet l'extension serai du Maze-solver-data-2 faut voir quel programme ou compresseur a pue crée se genre d'extension !

il y a ue tellement de logiciel en informatique que chacun a fait ce qu'il veut avec les extension de fichier !

_________________

Fan des Vieux PC et Vieux Système d'exploitation et Vieux logiciel.

« Là où règne le désespoir, j’apporte l’espoir. Là où règne la tristesse, j’apporte la joie. Permet-moi de consoler plutôt que d’être consolée, de comprendre plutôt que d’être comprise, d’aimer, plutôt que d’être aimée. Car, donner c’est recevoir, c’est en pardonnant que nous sommes pardonnés, c’est en mourant que nous naissons à la vie éternelle. »


Top
Profile Quote
Deksor
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 03:36
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Je doute fort de cette histoire de "maze solver".
En revanche ce que je peux rajouter comme info est que ça date de 1995 et que l'application capable d'extraire ça a été faite avec Borland c++ pour windows 3.1.
Je vais d'ailleurs la proposer


Top
Profile Quote
remax17
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 18:37
Membre inscrit
User avatar
Offline
 
Posts: 1263
Joined: 22 Sep 2010 15:03
Retro PC: PIII 500mhz -384Mb RAM - Voodoo 2 en SLI
 
Je vais poster ça sur le forum de TotalDOSCollection... ils sauront peut être...


Top
Profile Quote
Deksor
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 21:25
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Merci :approve:

Je peux avoir un lien ? :D

De mon côté j'ai créé un programme python qui permet de parcourir ces images et récupérer les fichiers compressés :
#!/usr/bin/python3

import pathlib

class Mz2File:
	def __init__(self, image):
		self.path = image.read(0x51).decode().rstrip('\0')
		self.name = image.read(0x0C).decode().rstrip('\0')
		image.seek(0x01, 1)
		self.param1 = int.from_bytes(image.read(4), byteorder='little')
		self.offset = int.from_bytes(image.read(4), byteorder='little')
		self.param2 = int.from_bytes(image.read(4), byteorder='little')
		self.content = None
		self.size = 0
	
	def getPath(self):
		return self.path
	
	def getName(self):
		return self.name
		
	def getFullPath(self):
		return (self.path + self.name)
	
	def getOffset(self):
		return self.offset
	
	def setFileContent(self, content):
		self.content = content
	
	def setSize(self, size:int):
		self.size = size
	
	def getSize(self):
		return self.size
		
	def getContent(self):
		return self.content
	
	def getParam1(self):
		return str(self.param1)
	
	def getParam2(self):
		return str(self.param2)
		
class Mz2Image:
	def __init__(self, filePath):
		image = open(str(filePath), "rb")
		image.seek(0x02, 0)
		self.fileCount = int.from_bytes(image.read(2), byteorder='little')
		image.seek(0x6F, 0)
		self.label = image.read(11).decode()
		image.seek(0xB9, 0)
		self.files = []
		for i in range(self.fileCount):
			self.addMz2File(Mz2File(image))
			image.seek(0x4A, 1)
		
		self.files.sort(key=lambda x: x.offset, reverse=False)
		i = 0
		for i in range(self.fileCount):
			if(i > 0):
				self.files[i - 1].setSize(self.files[i].getOffset() - self.files[i - 1].getOffset())
				self.files[i - 1].setFileContent(image.read(self.files[i - 1].getSize()))
			if(i == self.fileCount -1):
				self.files[i].setFileContent(image.read())
		
		image.close()
		
	def addMz2File(self, file:Mz2File):
		self.files.append(file)
	
	def getFiles(self):
		return self.files
		
	def getLabel(self):
		return self.label
	
	def dirImage(self):
		str = ""
		for file in self.files:
			str += file.getFullPath() + " " + file.getParam1() + " " + file.getParam2() + '\n'
		return str
	
	def getFileCount(self):
		return self.fileCount

for path in pathlib.Path(".").iterdir():

	if path.is_file() and str(path)[-3:] == "MZ2":
		print(path)
		image = Mz2Image(path)
		print(image.label)
		print(image.dirImage())
		
		
		
Je vous laisse vous amuser avec celui-ci, si vous avez des idées supplémentaires.


Top
Profile Quote
Deksor
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 06 May 2020 23:36
Membre d'honneur
User avatar
Offline
 
Posts: 5361
Joined: 23 May 2011 13:33
Retro PC: 486DX 33 8mo SB Pro 2, P2 450 128mo Voodoo 2 SLI
 
Voici la source :
C'est le programme qui vient du CD-Rom de la cinquième édition de Upgrading and Repairing PC
Je devrais bientôt avoir la version complète que je proposerai ici également, mais je pense que les fichiers contenus à l'intérieur seront les mêmes. C'est aussi de là que proviennent les fichiers .DBF que j'essaie d'ouvrir.


Top
Profile Quote
remax17
Post subject: Re: Décoder ce format d'image de disquette étrange
Posted: 07 May 2020 08:18
Membre inscrit
User avatar
Offline
 
Posts: 1263
Joined: 22 Sep 2010 15:03
Retro PC: PIII 500mhz -384Mb RAM - Voodoo 2 en SLI
 
du coup c'est ptet un compresseur maison ?


Top
Profile Quote
Display: Sort by: Direction:
Post Reply   Page 1 of 2  [ 13 posts ]
Return to “Informatique des vieux systèmes” | Jump to page 1 2 »
Jump to: