RAW-Zugriffe

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
WinSysCompany
Beiträge: 93
Registriert: 17.10.2010 17:43
Computerausstattung: KNOPPIX 8.1.0 & PureBasic (x68) 32Bit Vollversion
Wohnort: Berlin

RAW-Zugriffe

Beitrag von WinSysCompany »

Hallo läute , ich kenne mich mit der WinAPI nicht ganz so aus und suche vier Befehle

1. Arbeitsspeicher lesen ( gesamten )
2. Arbeitsspeicher schreiben ( gesamten )
3. Festplatte / CD / USB-Stick lesen ( sektorweisse / gesamten )
3. Festplatte / CD / USB-Stick schreiben ( sektorweisse / gesamten )

kann mir da jemand hellfen und mir sagen was ich für befehle benutzen muss und wie diese Funktionieren !?!

BITTE ...
PB-Workstation > PureBasic ( win32 Ver. 5.62 ) über Wine 3.0.2
KNOPPIX 8.0.0 ( GNU/Linux-Debian 9 ), 8GB-RAM, AMD-Athlon(tm) II X4 630, AMD Radeon HD 6850


Nichts ist einfacher als das Komplizierteste

Press Any Key to Continue
ich finde aber keine Any Key Taste auf meiner Tastertur

Was steht den auf ihrem Bildschirm
Na eine Blumenvase ...
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: RAW-Zugriffe

Beitrag von GPI »

Um Himmels willen, was hast du vor?

Ich würde mir das mal überlegen, das ist bei weiten nicht so einfach wie du denkst und auch ganz ehrlich, bis auf sehr Systemnahen Tools auch völlig unnötig. Gerade wild in Speicher zu schreiben ist eigentlich nur eine Garantie für einen völligen Systemabschuss und massiven Datenverlust.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: RAW-Zugriffe

Beitrag von ts-soft »

<offtopic>
Um den RAM RAW zu beschreiben nehme ich immer einen Edding 3000 permanent weiß, damit man das auf dem
schwarzen Käfer auch erkennen kann. Auch die Platine läßt sich so beschreiben :mrgreen:
</offtopic>
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Re: RAW-Zugriffe

Beitrag von Ramihyn_ »

WinSysCompany hat geschrieben:Hallo läute , ich kenne mich mit der WinAPI nicht ganz so aus und suche vier Befehle

1. Arbeitsspeicher lesen ( gesamten )
2. Arbeitsspeicher schreiben ( gesamten )
3. Festplatte / CD / USB-Stick lesen ( sektorweisse / gesamten )
3. Festplatte / CD / USB-Stick schreiben ( sektorweisse / gesamten )

kann mir da jemand hellfen und mir sagen was ich für befehle benutzen muss und wie diese Funktionieren !?!

BITTE ...
Benutze CreateFile_() um das Device zu öffnen:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
"\\.\PhysicalDrive0" Opens the first physical drive.
\Device\PhysicalMemory
Mit DeviceIoControl_ bekommst Du Informationen um das korrekte Device zu identifizieren:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Über SetFilePointerEx_() kannst Du die Position im Stream festlegen:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Um dann mit ReadFile_() zu lesen, bzw. mit WriteFile_() zu schreiben.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Am Ende dann CloseHandle_() zum schließen des Streams.

Ich würde Dir aber dringend davon abraten. Wenn Du es trotzdem machst, mach häufig Backups und sag den Benutzern des Programmes ganz klar was Du dort machst. Denn Du wirst Datenverluste erleiden und die teilweise erst viel später feststellen. Ein gutes Tool zur Überprüfung der Integrität des Dateisystems ist dazu auch recht hilfreich.

"\Device\PhysicalMemory" funktioniert angebl. nicht mehr bei neueren Windows Versionen. Da funktioniert angebl. "\\.\PhysicalMemory", hab ich aber nicht probiert.
Benutzeravatar
WinSysCompany
Beiträge: 93
Registriert: 17.10.2010 17:43
Computerausstattung: KNOPPIX 8.1.0 & PureBasic (x68) 32Bit Vollversion
Wohnort: Berlin

Re: RAW-Zugriffe

Beitrag von WinSysCompany »

wow das funktioniert :

Code: Alles auswählen

LoadFont(0,"Courier",8)
SetGadgetFont(#PB_Default,FontID(0))

memory = AllocateMemory(512)

If ReadFile(0,"\\.\PhysicalDrive0")
	ReadData(0,Memory,512)
	CloseFile(0)
Else
	MessageRequester("","fuck -.-")
EndIf

OpenWindow(0,0,0,800,200,"Read HDD 0")
EditorGadget(0,0,0,800,200)

For x = 0 To 15
	For y = 0 To 15
		SetGadgetText(0,GetGadgetText(0)+" "+RSet(Hex(PeekA(memory+x*32+y*2)),2,"0")+" "+RSet(Hex(PeekA(memory+x*32+y*2+1)),2,"0"))
	Next
	SetGadgetText(0,GetGadgetText(0)+#CRLF$)
Next

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Danke

p.s. ihr könnt ganz ruhig sein ich möschte damit nichtalles kaputt machen sonder nur ALLES lesen können im Rawi format ( die schreibbefehle sind nur der Folständigkeitshalber da !!! )

achso wie sieht es mit USB/ CD-Rom u.s.w Aus ?
PB-Workstation > PureBasic ( win32 Ver. 5.62 ) über Wine 3.0.2
KNOPPIX 8.0.0 ( GNU/Linux-Debian 9 ), 8GB-RAM, AMD-Athlon(tm) II X4 630, AMD Radeon HD 6850


Nichts ist einfacher als das Komplizierteste

Press Any Key to Continue
ich finde aber keine Any Key Taste auf meiner Tastertur

Was steht den auf ihrem Bildschirm
Na eine Blumenvase ...
Benutzeravatar
WinSysCompany
Beiträge: 93
Registriert: 17.10.2010 17:43
Computerausstattung: KNOPPIX 8.1.0 & PureBasic (x68) 32Bit Vollversion
Wohnort: Berlin

Re: RAW-Zugriffe

Beitrag von WinSysCompany »

aber Memory geht nicht (

Code: Alles auswählen

LoadFont(0,"Courier",8)
SetGadgetFont(#PB_Default,FontID(0))

memory = AllocateMemory(512)

If ReadFile(0,"\Device\PhysicalMemory")
	ReadData(0,Memory,512)
	CloseFile(0)
Else
	MessageRequester("","fuck -.-")
EndIf

OpenWindow(0,0,0,800,200,"Read HDD 0")
EditorGadget(0,0,0,800,200)

For x = 0 To 15
	For y = 0 To 15
		SetGadgetText(0,GetGadgetText(0)+" "+RSet(Hex(PeekA(memory+x*32+y*2)),2,"0")+" "+RSet(Hex(PeekA(memory+x*32+y*2+1)),2,"0"))
	Next
	SetGadgetText(0,GetGadgetText(0)+#CRLF$)
Next

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
)
na egal Memory ist auch nicht so wischtig aber wie funktioniert CD-Rom !?!
PB-Workstation > PureBasic ( win32 Ver. 5.62 ) über Wine 3.0.2
KNOPPIX 8.0.0 ( GNU/Linux-Debian 9 ), 8GB-RAM, AMD-Athlon(tm) II X4 630, AMD Radeon HD 6850


Nichts ist einfacher als das Komplizierteste

Press Any Key to Continue
ich finde aber keine Any Key Taste auf meiner Tastertur

Was steht den auf ihrem Bildschirm
Na eine Blumenvase ...
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Re: RAW-Zugriffe

Beitrag von hjbremer »

wie bereits weiter oben gesagt
lies doch einfach den Artikel auf http://msdn.microsoft.com/en-us/library ... 85%29.aspx

z.B. der Abschnitt "Changer Device"

alle deine Fragen werden da beantwortet
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
maupa
Beiträge: 105
Registriert: 12.12.2004 12:17

Re: RAW-Zugriffe

Beitrag von maupa »

WinSysCompany hat geschrieben:wow das funktioniert :

Code: Alles auswählen

LoadFont(0,"Courier",8)
SetGadgetFont(#PB_Default,FontID(0))

memory = AllocateMemory(512)

If ReadFile(0,"\\.\PhysicalDrive0")
	ReadData(0,Memory,512)
	CloseFile(0)
Else
	MessageRequester("","fuck -.-")
EndIf

OpenWindow(0,0,0,800,200,"Read HDD 0")
EditorGadget(0,0,0,800,200)

For x = 0 To 15
	For y = 0 To 15
		SetGadgetText(0,GetGadgetText(0)+" "+RSet(Hex(PeekA(memory+x*32+y*2)),2,"0")+" "+RSet(Hex(PeekA(memory+x*32+y*2+1)),2,"0"))
	Next
	SetGadgetText(0,GetGadgetText(0)+#CRLF$)
Next

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Danke

p.s. ihr könnt ganz ruhig sein ich möschte damit nichtalles kaputt machen sonder nur ALLES lesen können im Rawi format ( die schreibbefehle sind nur der Folständigkeitshalber da !!! )

achso wie sieht es mit USB/ CD-Rom u.s.w Aus ?



Hi,
Sorry das ich das hier wieder aus krame, aber Richtlichkeitshalber -> der Code funktioniert nicht , weder für HD noch RAM.
RAW Zugriffe sind nicht in einem 10 Zeiler zu realisieren

Würde aber sehr dankbar sein wenn wer, ein Beispiel zeigen könnte,
Anhand der Zugriffe hier ist das Interesse doch sehr groß, wohl kaum einer mit eine reale Lösung.



Gruss
maupa
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: RAW-Zugriffe

Beitrag von _JON_ »

Hallo maupa,

der Code den Du "quotes" funktioniert hier, allerdings nur mit Administratorrechten.
Mit dem RAM wird es mit aktuellen Betriebssystemen nicht mehr funktionieren.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
maupa
Beiträge: 105
Registriert: 12.12.2004 12:17

Re: RAW-Zugriffe

Beitrag von maupa »

Hi, THX für die Antwort
hier mit dem Code lese ich HD0, sek 0 aus:

Code: Alles auswählen

 
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4B F3 D7 BE 00 00 00 00
 02 00 EE FF FF FF 01 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
es sollte aber das drin stehen als erste zeichen:

Code: Alles auswählen

EB 52 90 4E 54 46 54 46 53

also wird da etwas falsch gelesen in dem Raw Beispiel, MBR schaut so aus
Sek 0 = Eigenschaft der HD,
Sek 1 = Bootmanager

daher die aussage das es nicht Läuft..
gruß
Maupa
Antworten