Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2006, 16:43   #1
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
lettura hd a basso livello

vorrei poter leggere byte per byte un hard disk e recuperare alcuni dati andati persi e irrecuperabili con altri mezzi.

spiego di preciso la situazione: ho perso 2 files di testo, partizione illeggibile neanche da programmi appositi; ma ho in un altro hard disk le vecchie versioni dei files. vorrei poter cercare all'interno dell'hard disk i due files facendo riferimento alle parti rimaste invariate rispetto alle versioni vecchie, ovvero cercare nell'hard disk queste parti invariate e salvarmi i settori vicini (sperando che i files non siano frammentati).


l'algoritmo è semplice e ce l'ho già in mente, basta poter leggere il byte all'indirizzo X del disco.

se non è possibile agire direttamente sul disco, pensavo che potrei anche salvare sul mio attuale sistema un'immagine dell'hard disk; ma non deve essere compressaq o modoficata in alcun modo, deve essere proprio la copia byte per byte dellhard disk in questione.


qualcuno mi sa aiutare? almeno è chiaro ciò che chiedo ?

grazie

Ultima modifica di Furla : 22-05-2006 alle 16:52.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2006, 17:48   #2
Mark0
Senior Member
 
L'Avatar di Mark0
 
Iscritto dal: Dec 2001
Messaggi: 356
Chiarissimo.
Ma l'approccio più semplice è proprio quello che illustri tu alla fine: creare un'immagine "fisica" dell'HD, e operare quindi direttamente sul file cosi ottenuto; cosa quindi banale con qualsiasi linguaggio tu scelga di utilizzare.
Un tool free per creare il file potrebbe essere DriveImage XML.

Bye!
Mark0 è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2006, 19:56   #3
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
Quote:
DriveImage XML runs under Windows XP Home, XP Professional and Windows Server 2003 only.
The program will backup, image and restore drives formatted with FAT 12, 16, 32 and NTFS.
ci sono 2 problemi: uso windows 2000 e la partizione non esiste più.

dici che funziona lo stesso? faccio qualche prova...
esistono altri programmi simili a questo?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2006, 20:27   #4
Mark0
Senior Member
 
L'Avatar di Mark0
 
Iscritto dal: Dec 2001
Messaggi: 356
Direi proprio di si, non dovresti aver problemi a trovarne diversi con Google. Questo è solo il primo che mi è venuto in mente.

Bye!
Mark0 è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 23:23   #5
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
niente da fare, non ne trovo nessuno che fa quello che serve a me! tutti i programmi che provo fanno un'immagine che contiene solo la parte utilizzata della partizione, la parte vuota viene ignorata... e i miei files sono proprio nella parte che per il file system è vuota

idee? consigli?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 23:57   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
su Windows la fopen dovrebbe aprirti uno pseudofile corrispondente ad un volume logico se come file name specifichi "\\\\.\\X:", ovvero:
- doppio slash (in C diventano 4 slash)
- punto
- slash (in C diventano 2)
- lettera del volume logico
- due punti

per esempio
Codice:
FILE *f = fopen("\\\\.\\D:", "r");
ti apre un ipotetico volume D: come uno pseudofile in sola lettura.

la cosa penso che funzioni solo sui kernel NT-based però, perché è strettamente legata all'architettura del sistema (doppio slash punto slash rimanda ad un branch del namespace globale degli oggetti del kernel, che si chiama "\DosDevices" ed è il branch usato da Win32).

di conseguenza tutto questo funziona solo su Windows NT/2000/XP e futuri (se mai arriveranno... )

spero di esserti stato utile

ciao

Ultima modifica di 71104 : 07-06-2006 alle 00:00.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 15:02   #7
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
aspetta fammi capire, questo comando in che ambiente lo uso?
funziona se la partizione è ntfs o anche se attacco il disco in slave ad un sistema con win2000?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 13:05   #8
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
ciao a tutti, ho continuato per un po' via PM con 71104, mi ha detto che il codice che ha postato è in C.

io conosco abbastanza vb6 e vb.net, mi sono procurato una guida e visual studio 6, con visual c++ posso fare un programma sfruttando il codice postato da 71104? non capisco però come usare quel codice, FILE cosa sarebbe? e quel *f?

grazie a chi mi aiuta
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 14:45   #9
Xalexalex
Senior Member
 
L'Avatar di Xalexalex
 
Iscritto dal: Jan 2006
Città: Pisa
Messaggi: 2503
Quote:
Originariamente inviato da 71104
su Windows la fopen dovrebbe aprirti uno pseudofile corrispondente ad un volume logico se come file name specifichi "\\\\.\\X:", ovvero:
- doppio slash (in C diventano 4 slash)
- punto
- slash (in C diventano 2)
- lettera del volume logico
- due punti

per esempio
Codice:
FILE *f = fopen("\\\\.\\D:", "r");
ti apre un ipotetico volume D: come uno pseudofile in sola lettura.

la cosa penso che funzioni solo sui kernel NT-based però, perché è strettamente legata all'architettura del sistema (doppio slash punto slash rimanda ad un branch del namespace globale degli oggetti del kernel, che si chiama "\DosDevices" ed è il branch usato da Win32).

di conseguenza tutto questo funziona solo su Windows NT/2000/XP e futuri (se mai arriveranno... )

spero di esserti stato utile

ciao

__________________
Xalexalex è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 15:05   #10
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
alex mi sai aiutare? con quanto illustrato da 71104, sapresti fare un programma che copia un'intera partizione in un file?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 15:48   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Io tempo fa avevo scritto delle funzioni per leggere dei settori specifici sul disco (MBR, Boot Sector).

Ad esempio per leggere il Boot Sector da un volume logico:
Codice:
DWORD ReadBootSector (TCHAR cVolume, LPVOID lpOutputBuffer)
{
    DWORD   dwRet = ERROR_SUCCESS;
    BYTE    bBufSector[1024];
    LPVOID  lpBuffer;
    TCHAR   szDevName[32];
    HANDLE  hDevice;
    DWORD   dwPos, dwRead;

    lpBuffer = (LPVOID) ((DWORD_PTR) bBufSector + 511 & ~0x1FF);

    wsprintf (szDevName, _T("\\\\.\\%c:"), cVolume);

    hDevice = CreateFile (szDevName, GENERIC_READ,
                          FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                          OPEN_EXISTING, 0, NULL);

    if (hDevice != INVALID_HANDLE_VALUE)
    {
        dwPos = SetFilePointer (hDevice, 0, NULL, FILE_BEGIN);

        if (dwPos != INVALID_SET_FILE_POINTER)
        {
            if (ReadFile (hDevice, lpBuffer, 512, &dwRead, NULL))
                CopyMemory (lpOutputBuffer, lpBuffer, 512);
            else
                dwRet = GetLastError ();
        }
        else
            dwRet = GetLastError ();

        CloseHandle (hDevice);
    }
    else
        dwRet = GetLastError ();

    return dwRet;
}
Puoi usare questo codice, se vuoi, estendendolo per leggere tutti i settori del volume e scriverli su un file.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 16:52   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Alessandro::Xalexalex

71104 è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 16:55   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Furla
ciao a tutti, ho continuato per un po' via PM con 71104, mi ha detto che il codice che ha postato è in C.

io conosco abbastanza vb6 e vb.net, mi sono procurato una guida e visual studio 6, con visual c++ posso fare un programma sfruttando il codice postato da 71104? non capisco però come usare quel codice, FILE cosa sarebbe? e quel *f?

grazie a chi mi aiuta
FILE *f serve a dichiarare una variabile f che rappresenta un file descriptor della libreria standard del C; in pratica, la funzione fopen apre un file, e il file descriptor che viene ritornato è ciò che rappresenta quel file e tramite il quale puoi effettuare operazioni su di esso (per esempio letture tramite fread e scritture tramite fwrite). oltre a qualche guida sulla sintassi del C (come ad esempio quella che trovi pure su MSDN) ti consiglio di leggerti anche la guida di queste funzioni: fopen, fread, fwrite, fclose. tutto su MSDN ^^

ciao
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 17:26   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
per 71104:
ma sei sicuro che le funzioni standard del "C" possano operare a quel livello??? Io per curiosità ho fatto una prova: ho aperto il volume con fopen("\\\\.\\c:", "r"); e in effetti l'apertura va a buon fine. Quando cerco di leggere 512 bytes con la fread, invece me ne legge solo 304.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 00:15   #16
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
boh... GetLastError ritorna qualcosa?
non credo cambi nulla se usi CreateFile anziché fopen, non esiste implementazione delle librerie standard del C che non passi il primo parametro di fopen al primo di CreateFile
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 15:06   #17
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
continuo col metodo di 71104, se dovessi avere problemi come andbin seguo l'altra strada. mi metto subito all'opera!

grazie a entrambi, siete gentilissimi!
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 15:36   #18
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da andbin
per 71104:
ma sei sicuro che le funzioni standard del "C" possano operare a quel livello??? Io per curiosità ho fatto una prova: ho aperto il volume con fopen("\\\\.\\c:", "r"); e in effetti l'apertura va a buon fine. Quando cerco di leggere 512 bytes con la fread, invece me ne legge solo 304.
Quote:
... fread() stops reading bytes if an end-of-file or error condition is encountered while reading
stream, or if nitems items have been read. ...
non puó essere che la fread incontri un EOF leggendo in binario ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 16:23   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da trallallero
non puó essere che la fread incontri un EOF leggendo in binario ?
-_-'

i file veri e propri mica finiscono con un vero EOF...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 16:35   #20
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da 71104
-_-'
... cos'é sta roba ?

Quote:
Originariamente inviato da 71104
i file veri e propri mica finiscono con un vero EOF...
cioé ?
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Google Pixel 10a disponibile al prezzo m...
Microsoft Copilot nei guai: email riserv...
AOC a 399€ su Amazon: QD-OLED 240 Hz e 0...
La Cina ha recuperato dal mare il primo ...
Boeing CST-100 Starliner: la NASA rende ...
hiop e TaDa uniscono le forze per trasfo...
Thermal Grizzly mostra il Ryzen 7 9850X3...
AMD Ryzen 'Olympic Ridge' Zen 6 per desk...
Donald Trump renderà pubbliche in...
Prezzo mai visto da mesi: ECOVACS DEEBOT...
Non solo S26, Samsung sta per lanciare a...
Windows 11 avrà a breve uno Speed...
Ask Intel: l'assistente IA che ti aiuta ...
Nasce Freedom.gov: il portale USA per ag...
Bose QuietComfort SC a 179,95€: ANC legg...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v