You can access any drive and read any sector in normal use.
Here is a simple mbr backup, no error checking, run as administrator
include \masm32\include\masm32rt.inc
.data
volume db '\\.\PhysicalDrive0',0
fname db 'mbr.bin',0
.data?
buffer db 512 dup (?)
.code
start: invoke CreateFile,offset volume,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0
mov esi,eax
invoke CreateFile,offset fname,GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0
mov edi,eax
push eax
mov eax,esp
invoke ReadFile,esi,offset buffer,512,eax,0
mov eax,esp
invoke WriteFile,edi,offset buffer,512,eax,0
pop edx
finish: invoke ExitProcess,0
end start
In combination with some ioctl calls you can read an entire disk sector by sector.
For a quick and dirty cloner, this will do the job.
Haven't tested this by writing sectors, for obvious reasons...