Article View: fr.comp.lang.c
Article #59Re: secteur d'un disque dur --> Merci
From: Thierry59
Date: Thu, 17 Feb 2005 22:07
Date: Thu, 17 Feb 2005 22:07
105 lines
6987 bytes
6987 bytes
"Pierre Maurette" <maurettepierre@wanadoo.fr> a �crit dans le message de news:37fv4mF5c66dgU1@individual.net... > Thierry59 a �crit : > [...] > > Merci pour tous vos reponses... en fait, je programme dans un premier temps > > en C sous Windows ( destination emulation DOS) pour apprendre a utiliser la > > FAT...., ensuite veux le programmer sous Visual C++ ( interface > > graphique.... faire une DLL... il y a du travail.... ) > > je vois donc plusieurs possibilit�.... ( En resum�) > > > > - Utiliser en direct le port d'acces du disque dur... acces directe au > > hardware....http://xos.freezee.org/index.php?page=hard ( merci Dark poulpo) > > Dans ce site, il y a plein de doc interressantes.... > > Avis au programmeur.... > > - Utiliser INT soft 13, mais je ne sais pas si celle ci est accessible > > depuis Windows.... si INT13 est une IT BIOS alors oui, c fesable ( routine > > en Asm a inserrer dans le code C ) > Vous allez vers deux d�ceptions. > Tout d'abord, oui, INT13 est bien une interruption du BIOS, c'est � dire > une famille de fonctions cod�es dans la ROM du BIOS. Notez que ces > fonctions sont ind�pendantes de l'OS et qu'il faut bien qu'au moins une > partie d'entre elles soient en dur dans le BIOS puisqu'il faut bien > acc�der au disque pour charger le premier embryon d'OS. Malgr� cel�, > elle n'est pas accessible depuis Windows XP, m�me sous pseudo DOS en > fen�tre invite de commande. Elle est filtr�e proprement, ou proprement > filtr�e ;-), �a d�pend comment on l'entend. > Ensuite, le mot "asm" n'a rien de magique. Pour les protections mises en > place par l'OS, que vous utilisiez INT 13 en assembleur ou les fonctions > biosdisk de bios.h en C (par exemple) ne fait aucune diff�rence. En > fait, "l'enveloppement C" de l'assembleur est ici extr�mement l�ger. > > > - Utiliser les instructions CreateFileA et surtout DeviceIoControl. ( > > Merci Pierre Maurette pour les infos) > > > > Maintenant, il y a surment d'autre possibilit�... attaquer une DLL ( > > Librairie sous Win) > Idem que pour "asm", rien de magique dans le mot "dll". Lier une > fonction dans une dll ne lui conf�re aucun droit suppl�mentaire. En > dehors de l'aspect pratique qu'on peut lui trouver, l'avantage d'une dll > est d'�tre projet�e dans l'espace m�moire de chaque processus > utilisateur. Cette caract�ristique les rend dans certaines circonstances > indispensables. > > Revenons au cas qui nous pr�occupe, en restant tr�s tr�s tr�s > approximatif puisque je ne fais pas la diff�rence entre Windows 9x et > XP, alors qu'elle est importante. L'acc�s bas niveau, c'est � dire > permettant de travailler � des niveaux de privil�ge (ring0) interdits > aux programmes utilisateurs, se fait par l'�criture d'un pilote de > p�riph�rique. Le p�riph�rique en question peut �tre virtuel, il peut > s'agir tout simplement d'appeler les interruptions du BIOS ou de placer > des points d'arr�t dans un programme (simples exemples). L'�criture de > tels pilotes demande un DDK, pour faire simple, c'est un m�tier. > L'interface entre les pilotes et les programmes utilisateurs se fait par > des fonctions g�n�ralement (ou toujours ?) en dll. En fait, c'est plus > complexe, la structure r�elle est lourdement multicouche. C'est ce qui > permet de simplifier l'�criture de pilotes pour une imprimante qui sera > soit USB, soit parall�le, pour un modem soit s�rie, soit USB, etc. > > Windows vous fournit tout �a et vous permet d'y acc�der de fa�on s�re > (sic) au moyen de CreateFile. > Vous avez ici des explications et un projet : > http://www.codeguru.com/Cpp/W-P/system/misc/article.php/c5765 > Voir "download sources" en bas de page, c'est un workspace VC++ 6.0 qui > se charge sans souci sous VS .NET 2003 (VC++ 7.0). > Les 3/4 du taf sont faits. Il vous reste � adapter �ventuellement aux > disques physiques et � l'�criture. Pour cel�, il faudra vous int�resser > aux droit d'acc�s. Commencez par �tudier CreateFile dans le MSDN puis > rayonnez: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp > http://minilien.com/?ghfHtyZTwK > Puis vous pourrez vous pencher sur l'interface graphique qui est nulle � > chier. > > note finale: vous trouverez des m�thodes plus ou moins s�rieuses pour > passer outre les protections de Windows (XP en particulier). Ce n'est > pas raisonnable, et � exclure absolument dans le cas d'une application > d�ploy�e m�me gratuitement. D'abord, c'est tr�s con de payer pour un OS > stable et de le bouziller. Ensuite, si on peut tenter le coup pour > faire mumuse sur un port parall�le non utilis� par ailleurs, c'est exclu > pour les disques, pour lesquel il faut g�rer l'acc�s concurrent. > > -- > Pierre y'a 4 ans envirron, j'ai adapter un driver de pilote que j'ai trouver dans le DDK, c etais un driver qui piloter le port serie (Modem).... je l'ai repris pour creer mon driver, piloter le port // pour une appli bien particuliere... Donc d'apres ce que je comprend... ca ne sera pas si simple avec le disque dur ? si je change les ports, ca ne risque pas de fonctionner? Si non, je viens d'essayer d'ecrire une fonction en C le outp() et inp() ne fonctionne pas sous XP pour attaquer le disque dur.... soit dois etre filtr�. par contre, pour infos cela fonctionne pour le port serie sous Windows 2000. il me reste donc a essay� avec CreateFile().... Merci pour tes liens sur CodeKuru, et les 2 autres, je regarde de suite.
Technical Details
Message-ID:
<cv34p4$9cr$2@news.tiscali.fr>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.tiscali.fr!not-for-mailReferences:
<cuokcp$5ap$1@news.tiscali.fr> <cutnjt$854$1@news.tiscali.fr> <37fv4mF5c66dgU1@individual.net>Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,cee8ec78e27adc6a X-Google-Thread: fdcad,cee8ec78e27adc6a X-Google-Thread: 10f688,cee8ec78e27adc6a X-Google-Thread: 111deb,cee8ec78e27adc6a X-Google-Thread: 102e15,cee8ec78e27adc6a X-Google-Attributes: gidf9822,gidfdcad,gid10f688,gid111deb,gid102e15,public X-Google-Language: FRENCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.tiscali.fr!not-for-mail From: "Thierry59" <thierry59_@tiscali.fr> Newsgroups: fr.comp.lang.c,fr.comp.lang.c++,fr.comp.os.msdos,fr.sci.electronique,fr.comp.developpement Subject: Re: secteur d'un disque dur --> Merci Date: Thu, 17 Feb 2005 23:07:00 +0100 Organization: Guest of TISCALI - FRANCE Lines: 110 Message-ID: <cv34p4$9cr$2@news.tiscali.fr> References: <cuokcp$5ap$1@news.tiscali.fr> <cutnjt$854$1@news.tiscali.fr> <37fv4mF5c66dgU1@individual.net> Reply-To: "Thierry59" <thierry59_@tiscali.fr> NNTP-Posting-Host: dyn-213-36-158-180.ppp.tiscali.fr X-Trace: news.tiscali.fr 1108678247 9627 213.36.158.180 (17 Feb 2005 22:10:47 GMT) X-Complaints-To: abuse@libertysurf.fr NNTP-Posting-Date: Thu, 17 Feb 2005 22:10:47 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441