Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Sony conferma l'uso di AI generativa sui...
Le sfere metalliche trovate in Australia...
Intel cambia i piani? Il processo 14A2 p...
La missione spaziale cinese Tianwen-2 ha...
Eni porta la produzione di batterie in I...
Il Dipartimento dell'Energia USA cancell...
MSI è pronta per le DDR5 cinesi a...
La sonda spaziale JAXA Hayabusa2 ha sorv...
L'Università di Sydney e IBM scop...
Credono di parlare con Microsoft e l'FTC...
Microsoft vede grandi profitti nella con...
Niente 'scatola vuota': ecco perch&eacut...
Microsoft annuncia 4800 licenziamenti: X...
Sky acquisisce la divisione media di ITV...
Chi studia con ChatGPT poi dimentica qua...
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: 19:58.


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