Autor Beitrag
Frankieboy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Fr 20.03.09 15:34 
Hallo,

ein kleines Programm von mir soll Zugriff auf den Masterbootrecord bzw. dem Bootcode darin bieten. Frage ist: wie kann ich direkt auf alle Festplatten im System zugreifen?

Grüße,

Frank

PS:
Ist mir gerade eingefallen: wie kann ich alle an das System angeschlossenen Platten ermitteln und deren Größe (gehört zum Programm oben)?
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 20.03.09 15:37 
Warum benötigst du Zugriff adrauf?

_________________
Markus Kinzler.
Frankieboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Fr 20.03.09 15:48 
Weil es ein Programm sein soll, mit dem man den MBR verändern kann.
Es soll unter anderem der Bootcode ausgelesen oder gelöscht werden.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 20.03.09 17:04 
Beide Fragen sind mittels der Forensuche ganz einfach auffindbar. Die Suchbegriffe beißen ja fast schon, so offensichtlich sind die.

Ich schließ mich aber meinen Vorrednern mal insoweit an, dass man wissen sollte, was man tut. Und in dem Fall weiß man das Vorgehen bzgl. beider Fragestellungen eigentlich ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Frankieboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Fr 20.03.09 20:40 
Ich finde mit Hilfe der Forensuche nichts, bei beiden "Themen". Ich denke, ich weiß die Vorgehensweise, aber um zu programmieren bräuchte ich zumindest einen Ansatz.

Entschuldigung, dass ich gefragt habe.

Ich finde es sowieso seltsam, dass als erster Post erst einmal eine Gegenfrage kommt, "warum" ich das gefragte bräuchte. Wahrscheinlich weiß ich das, sonst hätte ich nicht gefragt.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 20.03.09 20:56 
user profile iconFrankieboy hat folgendes geschrieben Zum zitierten Posting springen:
Ich finde es sowieso seltsam, dass als erster Post erst einmal eine Gegenfrage kommt, "warum" ich das gefragte bräuchte.
Weil man mit der Änderung des MBR verdammt viel fieses anstellen kann ;)

www.delphi-forum.de/...;highlight=boot+code Hier gibt's ne Menge Info und Links zu dem Thema, vielleicht hilft dir ja das weiter :nixweiss:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.03.09 22:34 
www.michael-puff.de/...er/Delphi/Programme/ ->DiskImageNT1_2.zip
Erstellt Images von Disketten. Kann man aber auch für Festplatten nehmen. Es wird gezeigt wie man direkt auf die Festplatte zugreift. Es braucht aber administartive Rechte.
Frankieboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: So 22.03.09 11:57 
Danke Michael, für deine Antwort!

ich hab den Code vorerst fertig:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  Devices: PChar;
  DiskHandle: THandle;
  LengthInformation: GET_LENGTH_INFORMATION; //<-- hier
begin
  DiskHandle := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,
    FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);

  DeviceIoControl(DiskHandle, IOCTL_DISK_GET_LENGTH_INFO, //<-- hier
    nil, 0, LengthInformation, sizeof(LengthInformation), nil,nil);
end;


Hier habe ich allerdings das Problem, dass Delphi GET_LENGTH_INFORMATION und IOCTL_DISK_GET_LENGTH_INFO nicht nimmt (rot unterschlängelt). Auch wenn ich ShellAPI zu uses hinzufüge, bleibt das so. Was kann ich machen?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 22.03.09 13:39 
Die musst du wohl selber deklarieren. Guck mal in meinem Source, ob ich sie benötigt habe. Ansonsten musst du in den zugehörigen C-Headerdateien von Microsoft gucken. Die werden mit dem Windows SDK mitgeliefert.