Page 1 sur 2
					
				Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 12:43
				par caussatjerome
				Bonjour Pure Codeurs !
Je cherche à lire/écrire directement sur un disque dur (sur n'importe quel secteur),
je ne parle pas sur une partition ou volume mais bien pouvoir écrire et lire n'importe que secteurs d'un disque (MBR compris),
j'ai beau chercher sur les forum, je ne trouve pas mon bonheur.
 
Je pense que l'API windows le permet, mais je suis mauvais en anglais, et n'arrive pas à trouver de code source/ doc là dessus.
Par avance merci de votre aide !
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 13:49
				par Zorro
				je me mefie toujours de ce genre de question
car bien souvent l'auteur de la question veux faire un truc tout simple
mais pose une question bien compliqué, car il suit le cheminement de sa pensée 
en clair, que veux tu exactement faire sur ton disque Dur ? 
là probablement tu aura des reponses mieux ciblées .... 

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 14:09
				par falsam
				@Zorro : Mince pour une fois que quelqu'un pose une question compréhensible même si la réponse va être complexe 

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 14:24
				par SPH
				Ca pourrait servir pour un logiciel d'image de diskdur  

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 14:36
				par djes
				
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 14:49
				par GallyHC
				Bonjour,
Je penses que la réponse passe forcement par de l'API pour Windows ce sera par DeviceIoControl_().
Cordialement,
GallyHC
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 15:16
				par Marc56
				Je cherche à lire/écrire directement sur un disque dur (sur n'importe quel secteur),
je ne parle pas sur une partition ou volume mais bien pouvoir écrire et lire n'importe que secteurs d'un disque (MBR compris)
Les 
secteurs d'un disque n'existent qu'après partitionnement et formatage  
 
https://en.wikipedia.org/wiki/Disk_sector
L'accès direct à un secteur physique est géré par le contrôleur du disque lui-même et n'est donc pas accessible à l'utilisateur.
Il faut avoir et comprendre les données "géométrique" du disque.
(Encore un sujet qui risque de faire passer PB pour un créateur de virus  

 )
 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 15:21
				par falsam
				Marc56 a écrit :...n'est donc pas accessible à l'utilisateur
Un contre exemple ? 
Code : Tout sélectionner
StartingLogicalSector.l = 0     ; Premier secteur à lire
NumberOfSectors.l       = 3     ; Nombre de secteur consécutif à lire
SectorSize              = 512   ; Taille d'un secteur
Disk.s                  = "G:"  ; Unité de stockage 
Dim buffer.b(SectorSize * NumberOfSectors)
hdh.l = CreateFile_("\\.\" + Disk, #GENERIC_READ, #FILE_SHARE_READ, 0, #OPEN_EXISTING, 0, 0)
;Positionnement sur le premier secteur à lire
SetFilePointer_(hdh, (StartingLogicalSector * SectorSize), #Null, 0)
;Lecture des secteurs consécutifs
ReadFile_(hdh, @buffer(), NumberOfSectors * SectorSize, @bytesread.l, #Null)
CloseHandle_(hdh)
;Vérification
CreateFile(0, GetCurrentDirectory() + "sector.txt")
For i=0 To bytesread-1
  WriteByte(0, buffer(i))
Next
CloseFile(0)
Ce code ne fait que lire les 3 premiers secteurs du MBR d'une clé USB (
G: dans cet exemple) et enregistre le contenu dans un fichier. Enregistre ce code dans un dossier et exécute le. Ouvre ensuite le fichier avec un lecteur hexa ou tout simplement avec l'IDE de PureBasic.
A compiler avec l'option droit administrateur.
 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 15:26
				par Marc56
				caussatjerome a écrit :
je ne parle pas sur une partition ou volume mais bien pouvoir écrire et lire n'importe que secteurs d'un disque (MBR compris),
 
 Déjà formaté  

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 15:28
				par falsam
				@Marc : Tu as bien fait de souligner  

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 15:30
				par Marc56
				Y'a pas de mal  

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 16:02
				par Ar-S
				Marc56 a écrit :caussatjerome a écrit :
je ne parle pas sur une partition ou volume mais bien pouvoir écrire et lire n'importe que secteurs d'un disque (MBR compris),
 
 Déjà formaté  

 
@Falsam, pourtant la question était compréhensible !  
  
  (je sors)
 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 16:11
				par falsam
				Rhooooooo le vilain il en profite. Mais ok c'est à juste titre. 

 
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 16:33
				par caussatjerome
				Merci à tous de vos réponses,
Pour répondre à la question "Pourquoi faire", je souhaite en effet créer deux logiciels :
1er : un logiciel d'effacement sécurisé genre DBAN, KILLDISK
2em : un logiciels de clonage genre CLONEZILLA, GHOST
Pourquoi ne pas utiliser ces logiciels me direz vous...
Par ce que je veut ajouter des fonctionnalités non implémenter dans les logiciels existants, et que j'aime les défit !
Merci pour votre aide, enfin je précise : si il est possible d'écrire sur tout un disque et non pas les partitions/volumes, sinon comment fonctionnerait les logiciels que j'ai mentionner plus haut ?!
je vais regarder les liens que vous m'avez données, chère compagnons codeurs, n'hésiter pas à ajouter des liens si vous trouvez/avez d'autres codes sources !
PS : Désolé l’orthographe n'est pas mon fort !
			 
			
					
				Re: Accès direct Secteur de disque
				Publié : mer. 21/juin/2017 20:42
				par Marc56
				caussatjerome a écrit :
Merci pour votre aide, enfin je précise : si il est possible d'écrire sur tout un disque et non pas les partitions/volumes, sinon comment fonctionnerait les logiciels que j'ai mentionner plus haut ?!
Là plupart fonctionnent comme les sauvegardes système sur bande ou comme la mise à jour de firmware: déversement binaire linéaire.  D'où la nécessité de ne pas interrompre le restore car tout est réécrit au meme endroit, meme taille de secteur y compris le mbr  taille d'allocation etc.
On ne sait qu'à la fin au reboot si la restore est ok
Les premières version de ghost par exemple ne savaient pas cloner sur un hd de taille différente ou pour le moins elles n'utilisaient que la même taille que le disque d'origine.
 
