Gå til innhold

Hvordan lage et program som finner igjen slettede data?


Anbefalte innlegg

Videoannonse
Annonse

Joda, det lar seg gjøre men ikke med scripting. Skal du få fram igjen slettet data så må du ha raw binary tilgang til disken. Tror ikke det går på en disk som er "mountet". Uansett, spør i C/C++ der har du nok bedre lykke. Det er uansett ikke enkelt på ntfs, det er ikke et dokumentert filsystem i motsetning til FAT. Prøv heller ferdig kommersiell tilgjengelig programvare.

Endret av data_jepp
Lenke til kommentar
Joda, det lar seg gjøre men ikke med scripting.

Ikke med batch-skript engang?

 

... nok spøk

 

Det funker utmerket å lese raw data selv fra mounta disker... hexplorer klarer det bra hvertfall :)

 

Den enkleste typen av programmer vil vel scanne gjennom starten av alle sektorer for å prøve å finne en sektor start som passer med en filtype. For det er relativt universalt at filer starter i starten av sektorer..... eller husker jeg helt feil.

Lenke til kommentar
Joda, det lar seg gjøre men ikke med scripting.

Ikke med batch-skript engang?

 

... nok spøk

 

Det funker utmerket å lese raw data selv fra mounta disker... hexplorer klarer det bra hvertfall :)

 

Den enkleste typen av programmer vil vel scanne gjennom starten av alle sektorer for å prøve å finne en sektor start som passer med en filtype. For det er relativt universalt at filer starter i starten av sektorer..... eller husker jeg helt feil.

 

Men med NTFS er journalen mer interessant enn selve filene, siden den mest sannsynlig vil fortelle hva som er galt og hvor.

 

DETTE ER EN UTMERKET JOBB FOR VBSCRIPT!!!!1111

Lenke til kommentar

Har startet å reverse en liten applikasjon som gjør akkurat dette og finner at den bruker Win32 ReadFile().

Den lager en handle til \\\\.\\ (via CreateFile() ) og leser spesifikke offset(jeg jobber med å finne ut hvordan det vet hvilke offset det skal lese og hva den finner ut av det den leser).

Det skal visst gå ann å spesifisere offset ved å angi en OVERLAPPED structure til ReadFile(), men dette programmet ser ut til å alltid angi dette parameteret til NULL så det er litt forvirrende. Det leser i 4096 hele tiden, unntatt den første gangen da den leser de 512 første bytes på disken(boot sector?)

 

NTFS setter vel noen flagg i en tabell som sier noe om filen er "slettet" eller ikke så hvis man kan lese denne tabellen direkte er det kanskje like greit; men hvordan?

Lenke til kommentar
Det leser i 4096 hele tiden, unntatt den første gangen da den leser de 512 første bytes på disken(boot sector?)

Det er bootsectoren ja, men ofte ligger boot koden et annet sted. I FAT32 i det minste ligger det bare en jmp instruksjon på de to første bytene, for deretter å bli etterfulgt av FAT32 informasjon.

Lenke til kommentar

Jeg skal komme tilbake med mer når jeg har funnet ut av hva programmet gjør med de dataene det leser.

Det leser forøvrig samme offset flere ganger rett etter hverandre, noe som virker veldig ineffektivt og merkelig, men kanskje en grunn til det?

Har lokalisert read-loopen til programmet, men ganske mange funksjoner og mye orging med buffere og annet minnesnacks så det kommer til å ta litt tid (også grunnet at jeg er re noob).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...