Forum: PC-Programmierung Rohdaten auf Festplatte schreiben + HPA entfernen


von Hitzkopp (Gast)


Lesenswert?

Hallo,

ich suche einen Weg das HPA auf einer Festplatte von Windows aus 
zurückzusetzen und Rohdaten auf die Festplatte zu schreiben. Also nicht 
auf Dateisystem-Ebene sondern direkt die Bytes auf die Festplatte an 
bestimmte Stellen in bestimmten Sektoren schreiben.

Falls jemand weiß, wie man das mit C/C++ o.ä. erledigen kann, dann wäre 
ich froh wenn er/sie es mir verrät ;)


Vielen Dank,

Dieter

von Simon K. (simon) Benutzerseite


Lesenswert?

http://de.wikipedia.org/wiki/Host_Protected_Area

Für die, die nicht wissen was HPA ist.

von zwieblum (Gast)


Lesenswert?

"von Windows aus" ist wohl der Pferdefuß. Sonst würd' ich sagen, booten 
irgendeine aktuelle Linux-CD und lösch' die Platte.

von Hitzkopp (Gast)


Lesenswert?

Das ist alles kein Problem, die Sache ist, dass ich es automatisiert tun 
möchte und für die meisten Leute ist es schöner von Windows...

btw: habe ich glaube ich schon eine Lösung gefunden.. oder einen Ansatz:

http://www.activevb.de/cgi-bin/apiwiki/DeviceIoControl

ja VB ist scheiße, aber diese API-Funktion gibt es auch in C, C# usw..

ich werd mich da wohl mal rein fuchsen


danke für die aufmerksamkeit

von Meister (Gast)


Lesenswert?

Was ist bitte an VB scheiße ?
BEHERRSCHST du VB? Wenn nicht, denk mal über deine Aussage nach.

von Christian R. (supachris)


Lesenswert?

CreateFile(...) kann BlockDevices wie Festplatten öffnen. Allerdings 
sind dazu Admin-Rechte nötig. Und ich bin mir nicht sicher, ob das ab 
Vista überhaupt noch geht. Bei XP gehts noch. Schau mal in die MSDN: 
http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx unten bei 
Physical Disks and Volumes

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Die Frage ist ob man damit auch Befehle an das Device senden kann. So 
wie ich den Wiki Artikel verstanden habe muß man dem Device über ATA 
Befehl erstmal sagen: Setze deine Größe auf Maximum. Dann Daten 
reinschreiben. Dann Befehl setze deine Größe auf X. Windows wird an der 
Stelle schon nur die "kleine" Größe kennen. Bei Linux ist dieser Zugriff 
auch scheinbar nur im root Modus nutzbar.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Blockdateizugriffe, die per CreateFile möglich sind, helfen hier 
gewiss nicht. Es müssen vielmehr über den Devicetreiber ATA-Kommandos an 
die Festplatte gesendet werden, das geht potentiell mit 
DeviceIOControl, setzt aber natürlich entsprechende Berechtigungen 
(Administratorrecht, dito mit freigeschalteter UAE bei Vista/Windows7) 
voraus.

von Christian R. (supachris)


Lesenswert?

Achso, du willst auf die ATA-Eben direkt runter. Das hatte ich falsch 
verstanden. Dann musst du wirklich direkt mit dem ATA Treiber 
sprechen....

von zwieblum (Gast)


Lesenswert?

Hitzkopp schrieb:
> Das ist alles kein Problem, die Sache ist, dass ich es automatisiert tun
> möchte und für die meisten Leute ist es schöner von Windows...

Lass es mich anders ausdrücken: Das Problem existiert nur unter Windows.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.