Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.10.2007, 22:33 Titel: Datei binär einlesen |
|
|
Wie kann man eine Datei binär einlesen.
Hoffe, dass ihr mir schnell helfen könnt.
Mein Vorhaben:
Ich will mir zuerst einmal ein Abbild der Festplatte erschaffen.
Anschliessend gebe ich jede einzelne Datei als Binärcode über einen Screensaver aus.
Cu
Kann mir keiner schnell eine Lösung nennen? |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.10.2007, 22:40 Titel: |
|
|
Wie kann man eine einzelne Datei binär einlesen.
Alle Dateien liegen doch binär auf der Festplatte...dann muss es auch möglich sein, diesen Binärcode einzulesen. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 25.10.2007, 23:13 Titel: |
|
|
Code: | Screen 17, 8
Dim As String fName
fName = "test.bin" 'Hier Dateiname angeben
Dim As Integer ff = Freefile, n=0, j
Open fName For Binary Access Read As #ff
Do Until Eof(ff)
Get #ff,, j
Print Hex(n, 8);" "; Bin(j, 32);" "; Hex(j, 8);" "; Mki(j)
n = n + 4
if (n mod 80)=0 then Sleep 1000
Loop
Close #ff
sleep |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.10.2007, 12:33 Titel: |
|
|
@csderats:
Man kann auch ohne "tausende Zeilen Code" von der Festplatte lesen/auf sie schreiben. Nur sollte man beim Schreiben Vorsicht walten lassen, denn die wenigsten dürften Ahnung von der internen Struktur des Dateisystems haben.
Folgende Variante für NT/2000/XP, evtl. auch Vista?
Code: |
#include "windows.bi"
Const BUF_SIZE=512
Dim As Handle hDevice
Dim As ZString * BUF_SIZE zsBuffer
Dim As Integer iBytesRead
hDevice=CreateFile("\\.\PhysicalDrive0", GENERIC_READ Or GENERIC_WRITE, _
FILE_SHARE_READ or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
If hDevice=INVALID_HANDLE_VALUE Then
Print "Konnte Laufwerk nicht oeffnen!"
End
End If
ReadFile(hDevice, @zsBuffer, BUF_SIZE, @iBytesRead, 0)
For i As Integer=0 To iBytesRead
Print Hex(zsBuffer[i]);
Print " ";
Next i
CloseHandle(hDevice)
|
Der Code öffnet die erste Festplatte zum Lesen und (Achtung!) zum Schreiben, bei Bedarf die entsprechende Konstante (GENERIC_WRITE) rausnehmen.
Man kann auch auf einzelne Partitionen, oder aufs Diskettenlaufwerk zugreifen. Die "Dateien" sind dann z.B. \\.\A:\ oder \\.\C:\.
Variante für 95/98/ME kann ich nicht probieren, mangels fehlendem Betriebssystem.
Ich kann nur sagen, dass es dort AFAIR "\\.\SMARTVSD" heißt.
/edit:
Funktioniert natürlich nur mit Administratorrechten! _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|