NTFS RECOVER : RÉCUPÉRER LES FICHIERS EFFACÉS D'UNE PARTITION NTFS

cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
- 23 sept. 2007 à 00:26
ernest_hemingway07
Messages postés
3
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
27 janvier 2010
- 27 janv. 2010 à 21:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44163-ntfs-recover-recuperer-les-fichiers-effaces-d-une-partition-ntfs

ernest_hemingway07
Messages postés
3
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
27 janvier 2010

27 janv. 2010 à 21:45
le lien de http://inform.pucp.edu.pe est incorect
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
7 nov. 2009 à 11:28
J'apport une correction dans la méthode FixupUSA() dans NTFS.cpp de ShareVB.

Méthode originale:
void FixupUSA(LPFILE_RECORD lpFileRecord)
{
DWORD UsaCount = lpFileRecord->Ntfs.UsaCount;
USHORT* lpUsa = (USHORT*)((UCHAR*)lpFileRecord + lpFileRecord->Ntfs.UsaOffset);

for (ULONG i = 0; i < UsaCount;i++)
((USHORT*)lpFileRecord)[256 * i + 255] = lpUsa[i];

}

à remplacer par:
void FixupUSA(LPFILE_RECORD lpFileRecord)
{
DWORD UsaCount = lpFileRecord->Ntfs.UsaCount;
USHORT* lpUsa = (USHORT*)((UCHAR*)lpFileRecord + lpFileRecord->Ntfs.UsaOffset);

for (ULONG i = 1; i < UsaCount;i++)
((USHORT*)lpFileRecord)[(256 * (i-1)) + 255] = lpUsa[i];

}

++
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
19 oct. 2009 à 00:25
Salut ShareVB,
Je suis en train d'appliquer l'exemple donné dans le livre de Gary pour un tout autre usage (C#), je décortique en parallèle les sources de ta dll NTFS.
Dans mes tests (projet c++) je fais appel à ta méthode MapMFT et je rencontre un soucis à l'intérieure de celle-ci.

Ligne:
lpBuff = (LPVOID)new UCHAR[BytesPerFileRecord];

Le debuggeur de VS2008 hurle à la corruption lors de la réservation d'un espace sur le tas pour lpBuff.
Voici le message: Windows has triggered a breakpoint in test.exe. This may be due to a corruption of the heap, which indicates a bug in test.exe or any of the DLLs it has loaded.

Je comprend pas ce qui se passe !
Peux-tu m'aider stp ?

Willi
unruledboy
Messages postés
9
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

26 juin 2008 à 15:17
Hi,

two more problems found:

1.it will crash in some computers, exactly the same operating system(windows 2003), but some works, strange.

2.it uses too much memory, for a 40g drive(100,000 files) will consume 800M+ memory after running the MapMFT, any idea how use less memory? I believe that it could only be done through modifying the NTFS.dll file.
unruledboy
Messages postés
9
Date d'inscription
dimanche 10 juillet 2005
Statut
Membre
Dernière intervention
26 juin 2008

25 juin 2008 à 05:41
hi, how to tell the condiction of a deleted file, such as: good(nothing changed, could be 100% recovered), poor(file record has been overwritten, could not be recovered)?
Afficher les 17 commentaires