Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Il nuovo Deebot X12 OmniCyclone abbina un sistema di raccolta dello sporco senza sacchetto, un rullo di lavaggio esteso e la tecnologia FocusJet per intervenire più efficacemente sulle macchie più persistenti. Un robot completo e preciso che aiuta a tenere puliti i pavimenti di casa con il minimo sforzo
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2 implementa un mocio a nastro che esegue una pulizia dettagliata del pavimento di casa, in abbinamento ad un potente motore di aspirazione della polvere: un prodotto ideale per gestire in autonomia e con grande efficacia le necessità di pulizia dei pavimenti di casa
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2006, 15: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 15:52.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2006, 16: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, 18: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, 19: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, 22: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, 22: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 : 06-06-2006 alle 23:00.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 14: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, 12: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, 13: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, 14: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, 14: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, 15: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, 15: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, 16: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 02-07-2006, 23: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, 14: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, 14: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, 15: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, 15: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


Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Narwal Flow 2: la pulizia di casa con un mocio a nastro Narwal Flow 2: la pulizia di casa con un mocio a...
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Claude Desktop e la modifica silenziosa ...
Blue Origin ha mostrato gli interni del ...
Linux alla pari di Windows in gioco: con...
Il rientro del secondo stadio del razzo ...
Il controller ufficiale Microsoft per Xb...
DJI Power 1000 Mini: la power station da...
IT Wallet sempre più aperto: in a...
Samsung pronta alla svolta: il Galaxy S2...
Segway Navimow i206 AWD, il robot taglia...
Zeekr 7GT debutta in Italia alla Milano ...
Ubisoft in difficoltà: Splinter C...
Tesla Cybertruck, numeri che fanno discu...
Intel Arc G3 Extreme: fino a 80W di pote...
SteelSeries Aerox 3 Wireless Gen 2 recen...
Tesla nel deserto senza batteria: il via...
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: 15:01.


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