Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1481 connectés 

  FORUM HardWare.fr
  Programmation

  [VC++ ASSEMBLEUR ] questions sur les disques durs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++ ASSEMBLEUR ] questions sur les disques durs

n°20977
xilebo
noone
Posté le 28-03-2001 à 13:27:15  profilanswer
 

Je cherche à écrire un explorateur windows mais capable de lire dans plusieurs types de partitions , FAT16,FAT32 , NTFS, Linux EXT2, SCO UNIX  etc ... tout cela sous windows. un truc qui mélange EXPLORER et explore2fs.
Je cherche à savoir comment lire sur le(s) disque(s) dur(s) en bas niveau (connaitre les fonctions assembleurs pour ca en faire ca).
Je voudrais aussi connaitre la structure du disque :le MBR, la table des partitions et la taille qu'il font ainsi que l'endroit ou ca se trouve.
Enfin, je cherche aussi des informations sur les différents système de fichiers vu au dessus. (Un lien sur un site expliquant ca me suffirait.)
 
Merci de vos éventuelles réponses.

mood
Publicité
Posté le 28-03-2001 à 13:27:15  profilanswer
 

n°20981
zop
1 world, 1 web, 1 Windows
Posté le 28-03-2001 à 13:33:14  profilanswer
 

xilebo a écrit a écrit :

Je cherche à écrire un explorateur windows mais capable de lire dans plusieurs types de partitions , FAT16,FAT32 , NTFS, Linux EXT2, SCO UNIX  etc ... tout cela sous windows. un truc qui mélange EXPLORER et explore2fs.
Je cherche à savoir comment lire sur le(s) disque(s) dur(s) en bas niveau (connaitre les fonctions assembleurs pour ca en faire ca).
Je voudrais aussi connaitre la structure du disque :le MBR, la table des partitions et la taille qu'il font ainsi que l'endroit ou ca se trouve.
Enfin, je cherche aussi des informations sur les différents système de fichiers vu au dessus. (Un lien sur un site expliquant ca me suffirait.)
 
Merci de vos éventuelles réponses.




Regarde dans les sources de Linux

n°21062
darkoli
Le Petit Dinosaure Bleu
Posté le 28-03-2001 à 15:01:39  profilanswer
 

moi aussi je cherche ce genre d'infos mais juste pour fat32 ert fat16 mais je n'ai pas de source de linux a disposition !!!

n°21074
seblamb
Posté le 28-03-2001 à 15:13:06  profilanswer
 

Je sais pas si tu sais mais pour faire cela il faut écrire un  
driver sinon tu n'auras pas acces aux fonctions qui  
permettent de lire sur un disque sans passer par le systeme.
En plus d'être assez compliqué, ils faut également une version
Entreprise ( je crois que c'est celle là) de visual C++.
Ne pas oublier bien sur de télécharger le DDK sur le site de
microsoft.

n°21084
darkoli
Le Petit Dinosaure Bleu
Posté le 28-03-2001 à 15:30:22  profilanswer
 

merci mr seblamb, je vais pouvoir friter mes partitions

n°21155
xilebo
noone
Posté le 28-03-2001 à 19:23:46  profilanswer
 

Je ne suis pas tout a fait d'accord sur le fait qu'on soit obligé d'écrire un driver pour accéder au disque.En effet qu'est ce qui empecherait d'acceder au disque ... le système d'exploitation ? je ne pense pas. On peut toujours ecrire des routines assembleurs qui accedent au disque sans passer par le systeme. Je pense que c'est ce que fait explore2fs mais je n'en suis pas sur . C'est pour c ela que j'aimerais bien avoir l'adresse des sources ( ils sont dispos mais je ne sais pas ou ).
 
Si je me trompe sur ce que j'ai dit au dessus, n'hésitez pas à me corriger mais je ne pense vraiment pas qu'un OS puisse empecher d'acceder aux peripheriques ( ce serait le top de la securité !!)

n°21195
gilou
Modérateur
Modzilla
Posté le 29-03-2001 à 00:13:34  profilanswer
 

xilebo a écrit a écrit :

Je ne suis pas tout a fait d'accord sur le fait qu'on soit obligé d'écrire un driver pour accéder au disque.En effet qu'est ce qui empecherait d'acceder au disque ... le système d'exploitation ? je ne pense pas. On peut toujours ecrire des routines assembleurs qui accedent au disque sans passer par le systeme



 
Justement si:
Comment du decriptes les noms longs NTFS en assembleur? Et si le FS est crypte (NTFS permet cela il me semble) ou compresse par l'OS, bonjour.
 
Ecrire un driver IFS est la bonne methode je pense (et je te signale que les specialistes de la question, cf www.sysinternals.com et www.winternals.com pour acceder au FS NTFS en RW sous win98, ils ont besoin de certains routines implementees dans le Kernel NT qui ont pas l'air evidente a dupliquer, puisqu'ils utilisent une copie locale des modules de NT (tournant sous 98)).
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°21199
xilebo
noone
Posté le 29-03-2001 à 00:25:29  profilanswer
 

Merci du renseignement gilou , j'ai en effet vu un peu gros ! je ne savais pas que NTFS pouvait etre crypté ( komen kon fait pour le crypter alors ?), je vais d'abord me pencher sur un explorateur FAT/FAT32/ext2, j'espere avoir moins de mal !

n°21213
gilou
Modérateur
Modzilla
Posté le 29-03-2001 à 02:12:13  profilanswer
 

Pour le cryptage avec NTFS, j'ai jamais manipe ca, mais j'ai vu des fontions a ce sujet dans la doc de l'API il me semble (ou alors c'est le volume manager de Win2K qui m'a propose ca, je sais plus).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°21252
seblamb
Posté le 29-03-2001 à 10:33:29  profilanswer
 

xilebo > Bien sur que le systeme d'exploitation va t'en empécher.  
Esseye de lancer une interruption dans une applie 32 bits et tu va voir comme tu vas te faire jeter.
Windows c'est pas le DOS, c'est un systeme protégé,  
il est garant du partage des resources sytemes entre les différents programmes.
Donc on ne peut pas acceder directement au materiel. Il faut passer pas ses API ou alors faire un driver.

mood
Publicité
Posté le 29-03-2001 à 10:33:29  profilanswer
 

n°21254
JPA
Posté le 29-03-2001 à 10:49:39  profilanswer
 

Pour le code source de explore2fs voir la page
http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm
NB : explore2fs est écrit en Delphi.

n°21266
xilebo
noone
Posté le 29-03-2001 à 11:38:10  profilanswer
 

On peut lancer une interruption dans un programme 32 bits, mais il faut faire une manip avant, windows à sa propre tble d'interruption mis il est possible de rediriger les interruptions. Je ne sais pas comment on fait techniquement mais un pote ( bien calé ) m'a expliqué que c'est parfaitement possible. je dis pas que c'est pas du travail de goret par contre. Cependant, je vais suivre vos conseils , je vais soit ecrire un driver , soit passer par ses API, je ne sais pas encore comment je vais entamer ...

n°21597
eraser
Posté le 31-03-2001 à 09:05:18  profilanswer
 

Hello
A mon epoque, j'avais eu besoin d'info sur tout ce qui touchait la fat16. Un bon bouquin (enfin en 1992!) était la Bible PC de Micro Application: malheureusement, je sais meme pas si ca exite encore, et si oui, j'espere que ca été remis à jour :) .  
 
d'ailleurs, c'est tres marrant à relire, notamment la section sur les cartes videos (cga,ega et meme vga!)... ca en rappelle des souvenirs !

n°21666
verdy_p
Posté le 01-04-2001 à 14:02:06  profilanswer
 

Que tu fasses ton programme en C, en C++, ou en Assembleur, le problème à résoudre sera le même: la barrière du système d'exploitation qui tourne. Sous Windows, tu es dans un environnement protégé, et les esaces mémoire et entrée-sortie sont protégés car le processeur a été placé dans un mode qui le met sous le contrôle du système: tu as un niveu de privilège qui ne te permet que de voir ce que l'OS veut bien te laisser voir. Pour passer outre, sans planter le système pour autant ou sans éteindre la machine, il faut cohabiter avec l'OS, donc utiliser ses APIs.
Et à ce moement-là, il est plus simple de travailler en C ou C++ qu'en assembleur: c'est déjà assez compliqué de manipuler les couches basses de l'OS (regarde le DDK tu comprendras)...
Sinon si tu veux analyser un disque sur lequel aucun fichier n'est ouvert par l'OS (partition démontée, tu peux utiliser les fonctions du Bios, ou de Win32 pour lire les secteurs. Pas besoin d'assembleur pour cela.
Reste après à analyser les structures de données que tu y trouveras. Quant à modifier le contenu du disque, l'OS ne te laissera pas faire facilement. Bref abandonne l'assembleur: il n'est pas nécessaire pour des raisons de performance, le C ou le C++ sont aussi bien pour utiliser des APIs de l'OS.
Aujourd'hui l'assembleur ne se justifie plus que pour accélérer les longs calculs qui ne nécessitent pas l'inervention de l'OS: calculer une image 3D, décompresser des données, ... et encore, car maintenant tout ça se fait très bien en C (ou C++), Pascal (Delphi) grâce aux progrès des compilateurs... Et un langage de haut niveau permet de développer nettement plus facilement au milieu d'une jungle de structures de données.

n°21688
xilebo
noone
Posté le 01-04-2001 à 20:09:50  profilanswer
 

D'accord , d'accord j'arrete, l'assembleur c'etait une mauvaise idée ... donc vous me conseillez le DDK . Tres bien mais ou puis-je le trouver ? et pis quel(s) doc(s) y-a-t-il à ce sujet . Est ce que MSDN version entreprise ( janvier 2000) suffirait ?  
 
Mais une chose que je ne comprends toujours pas, c'est que la dll diskio.dll de explore2fs( j'ai le source de cette dll) est en assembleur et d'apres ce que je vois dedans , il y a des fonctions ecrites en assembleur pour lire et ecrire des secteur sur un disque.(ce qui me semble "plutot necessaire" pour lire un FS ). Mais je me trompe peut-etre . en tout cas il font bien appel à l'interruption 13h pour piloter le disque .
 
 
Si quelqu un peut m'expliquer un peu comment fonctionne DDK et ou peut on trouver de la doc , ce serait sympa . Et aussi une adresse expliquant le systeme de fichier EXT2 et NTFS ( version 4 pour le moment)
 
Merci en tout cas de votre aide.
 
A ce propos je vous conseille si vous ne le connaissez pas deja le site jc.bellamy.free.fr, qui est une source d'info assez interessante sur le sujet.

n°21696
zop
1 world, 1 web, 1 Windows
Posté le 01-04-2001 à 21:55:31  profilanswer
 

Pour le NTFS, je crois que tu peux te brosser (comme dirait l'autre), c'est la propriété de Microsoft et je ne crois pas qu'il t'en filerait les specs, mais sait-on jamais  ;)

n°21742
seblamb
Posté le 02-04-2001 à 11:01:57  profilanswer
 

J'ai regardé les explication du programmeur  :)  pour la dll
En fait elle est compilée en 16bit et utlise la compatiblité qu'offre windows95 pour ces programmes, pour pouvoir utiliser l'interruption.
J'ai quand même un peut regardé sur le site de microsoft il ne semble pas q'on puisse utiliser les int. dans un prog 32bit. Par contre on peut controler les drivers directement (fonction DeviceIoControl). C'est ce qu'utilise "explore2fs" quand il fonctionne sous NT.
 
Pour le DDK telecharge le et tu auras toutes les indications


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VC++ ASSEMBLEUR ] questions sur les disques durs

 

Sujets relatifs
Qqs questions ( C++ inside )Assembleur : int 21h
Assembleur : petit problème avec l'int 21h : fonction 4Bh[DHTML Drag & Drop] pour ceux qui posent toujours des questions
[HTML et DHTML et Javascript] pour ceux qui posent plein de questions[JAVA] Deux questions sur les fichiers JAR
[C++] 2 questions : <string> et comparaison ; <vecteur> et pointeursintégrer une procédure Assembleur dans un programme C
Intégrer une procédure Assembleur dans un programme Cch'tit questions...
Plus de sujets relatifs à : [VC++ ASSEMBLEUR ] questions sur les disques durs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR