🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #59

Re: secteur d'un disque dur --> Merci

#59
From: Thierry59
Date: Thu, 17 Feb 2005 22:07
105 lines
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-mail
References: <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