Digitale foto’s herstellen (NL versie)

DiskTuna repareert beschadigde foto bestanden maar haalt ook verloren en gewiste data terug!

DiskTuna heeft ruime ervaring met generieke data recovery maar heeft zich gespecialiseerd in het terug halen van foto’s van kleine flash gebaseerde data dragers (SD kaartjes, USB thumb drives etc.). Tevens is DiskTuna een van de weinigen (wereldwijd!) die in staat is corrupte digitale foto’s te repareren. Je leest er op deze pagina alles over. Corrupte foto bestanden kunnen worden ge-upload, fysieke gegevens dragers (USB flash drives, USB sticks, geheugen kaarten) worden opgestuurd (Nederland).

Je kunt bij foto herstel aan een paar dingen denken:

  • Restauratie van oude analoge foto’s
  • Het terughalen van gewiste digitale foto’s
  • Het repareren van corrupte digitale foto’s

DiskTuna houdt zich alleen bezig met de tweede en derde optie: Het terughalen van gewiste foto’s en het herstellen van corrupt digitale foto’s. Daarbij beperkt DiskTuna zich tot gegevens herstel van kleine flash gebaseerde gegevens dragers (geheugen kaarten en USB flash drives).

Herstel van digitale foto’s

Gewiste foto’s herstellen

Bij het terughalen van foto’s is het van belang onderscheid te maken tussen verschillende oorzaken van het gegevensverlies:

  • Fysieke oorzaak, ofwel schade en slijtage aan de gegevens drager
  • Logische oorzaak, ofwel corruptie in bestands-systeem meta data

Als aan gegevens verlies een fysieke oorzaak ten grondslag ligt is ‘doe het zelven’ vaak onverstandig en onmogelijk. Maar zelfs bij een logische oorzaak liggen fouten op de loer, dus wees voorzichtig.

Fysieke oorzaak

Je kunt hierbij denken aan iets eenvoudigs als een afgbroken USB stekker of een doorgebrande zekering maar ook aan de NAND chip zelf. Hoewel algemene aanname is dat flash schijven zeer robuust zijn zijn er wel degelijk dingen die fout kunnen en zullen gaan. Een voordeel m.b.t. het herstelen van schade is dat in tegenstelling tot bij het repareren van klassieke schijven geen zgn. clean-room vereist is.

Foto's terughalen van beschadigde geheugen kaartjes en USB sticks

Voor reparatie van flash based schijven is geen cleanroom nodig: Benodigdheden zijn multimeter, microscoop, soldeer station, re-work station, NAND reader.

Afgebroken componenten, door gebrande zekeringen etc.

Zaken als een afgebroken USB stekker zijn meestal te repareren, probleem is vaak dat componenten erg klein zijn. Vereist zijn precisie, ervaring en een microscoop. Doe hetzelf pogingen leiden vaak tot schade (Ik heb werkelijk tientallen dozijnen aan flash drives op eBay gekocht voor onderdelen en als oefen materiaal). Reparatie van zogenaamde monoliths is uitgesloten. Monoliths zijn chips waarop alle componenten zich in een chip bevinden.

Bad sectors, bevriezende USB drives en SD kaarten…

DeepSpar data recovery hardware

Net zoals convetionele schijven kunnen op flash gebaseerde ‘schijven’ bad sectors ontstaan. Probleem met kleine flash drives zijn dat ze bijna altijd via USB aangesproken worden en dat juist USB erg slecht is in het afhandelen van fouten. Dit bemoeilijkt het redden van data van dergelijke drives en kan soms alleen d.m.v. professionele data recovery hardware. Ik gebruik voor dit soort gevallen hardware van de Canadese firma DeepSpar en een zelf ontwikkelde hardware/software combinatie (zie video).

Controller kapot

Daar waar het bij normale harde schijven gebruikelijk is kapotte componenten uit te wisselen met onderdelen van een werkende schijf is dit bij flash drives vaak niet mogelijk. Niet omdat dit principieel onmogelijk is, maar omdat het bijna altijd ondoenlijk is een donor te vinden. Vaak is de enige optie chip-off of het direct dumpen van NAND geheugen d.m.v. een NAND reader en gespecialiseerde software. Deze software moet dan de taak van de controller op zich nemen, nabootsen. Gezien de grote verscheidenheid aan controllers en firmware revisies is dit soms onmogelijk: Geen enkele fabrikant stelt gegevens beschikbaar en moeten dus reverse-engineered worden. Bedrijven als ACElab en Soft Center kunnen dit simpelweg niet bijbenen. Voor elke reverse engineered controller verschijnen er drie nieuwe.

Controller kapot, translation table corrupt. Dan kan alleen de NAND chip direkt uitlezen met gespecialiseerde hardware en software nog uitkomst bieden.

Controller kapot, translation table corrupt. Dan kan alleen de NAND chip direkt uitlezen met gespecialiseerde hardware en software nog uitkomst bieden.

Maar, mocht je nu zo’n vooruitziende blik hebben en je direct twee identieke kaartjes of USB flash drives hebt gekocht, dan is het een ander verhaal! Er zijn mensen die USB sticks of SD kaartjes altijd per paar kopen. Dat is nog steeds geen garantie, maar er is dan een goede kans dat wanneer de een stuk gaat, de ander als donor gebruikt kan worden. In zo’n geval stuur je beide drives op.

Versleten and corrupt NAND geheugen

Het klinkt wellicht raar maar NAND geheugen ‘slijt’ en heeft zeker niet het eeuwige leven. Ik gebruik vaak de analogie met een batterij: Net als een batterij kan NAND geheugen data verliezen net zoals een batterij zijn lading verliest. Ook is het zo dat bij herhaald gebruik het vermogen lading (data) te behouden afneemt. In het beste geval zal, wanneer dit zich voor doet, dit gevolgen hebben voor individuele bestanden. Het zal duidelijk zijn dat NAND flash zich niet leent voor langdurige opslag, met name niet wanneer je de flash drive verstoken van stroom in een lade opbergt.

Afhankelijk van de firmware schakelen veel flash drives (USB sticks en geheugen kaarten) naar een read-only modus wanneer het maximale aantal erase/write cycles bereikt is. In principe kun je nog gewoon bij de data, je kunt echter geen nieuwe bestanden opslaan. Je komt dit veel tegen in internet forums waar mensen met alle macht pogen zo’n ding weer aan de gang te krijgen. Dit heeft alleen zin als de read-only modus een gevolg is van het bijvoorbeeld abrupt verwijderen van het device: Met de tools van de fabrikant kun je het vaak opnieuw formatteren en weer veilig in gebruik nemen.

Het gebeurt echter ook dat bestandssysteem meta data (veelal de file allocation table) beschadigd raakt of, in het slechtste geval de ‘translation table’ van de NAND zelf. Die laatste kan ook beschadigd raken wanneer de flash drive abrupt contact verliest met het aangesloten apparaat. Als gevolg kan de controller the translation tables binnen de NAND niet updaten. Een volgende keer hangt de firmware of schakelt in een soort van safe-mode: Er kan een ID van de drive bepaald worden maar the capaciteit is 0 of slechts enkele tientallen MB’s.

Wanneer deze translation table beschadigd is, is enkel recovery d.m.v. een speciale lezer en gespecialiseerde software nog mogelijk. Hierbij gelden dezelfde problemen als bij het vorige punt (controller kapot). De rauwe NAND dump zal moeten worden getransformeerd tot een logisch geheel van waar dan bestanden kunnen worden gered d.m..v. file recovery software.

Deze taak is normaliter aan de controller en behelst de-scrambling, ECC correctie, RR correctie, en het correct aan elkaar koppelen van data blokken (die werkelijk random versreid worden i.v.m. wear-leveling en bad block management). Daar bovenop komt het gegeven dat een chip uit meerdere delen kan bestaan die worden beheerd in een RAID achtige opstelling. Bij meerdere chips wordt dit een nog ingewikkelder RAID!

Logische oorzaak

Net zoals op iedere schijf kan het gebeuren dat het bestandssysteem ‘het zicht op een bestand verliest’. Dat kan zijn door het wissen van een bestand, het formateren van een schijf of door corruptie van het bestandssysteem zelf.

Aangezien we ons beperken tot kleine flash gebaseerde gegevens dragers hebben we het bijna automatisch over het FAT bestandssysteem of een variant daarvan; FAT32 en exFAT (FAT64). De centrale en meest belangrijke structuur is de file allocation table (FAT) aangezien het de enige manier is om individuele clusters aan een bestand te koppelen.

Helaas is het zo dat bij veel handelingen zoals het wissen van foto’s of het formatteren van bijvoorbeeld de SD kaart juist deze FAT ‘gereset’ wordt. Wanneer dit gebeurt is het eigenlijk alleen nog mogelijk niet geframenteerde bestanden terug te halen zolang de bestandsdata nog niet overschreven werd.

DiskTuna kan gefragmenteerde foto’s vaak nog herstellen, hetzij handmatig, hetzij met software die DiskTuna ontwikkelde samen met een Russische ontwikkelaar. Zelfs bij bestanden die door gerenomeerde labs corrupt geretouneerd worden! Vereiste is dan wel dat zo’n lab de logische drive image van de gegevensdrager beschikbaar stelt (niet de NAND dump). Ook als je zelf probeerde foto’s terug te halen maar slechts corrupte bestanden vindt kan het lonen het SD kaartje naar me op te sturen. Als ik niets vind betaal je ook niets. Gefragmenteerde videos kan ik ook vaak intact terughalen (MP4 + MOV).

Wat je vaak ziet is dat bij data recovery labs hele knappe koppen rond lopen die ontzettend veel verstand hebben van de hardware. Ze kunnen werkelijk waar wonderen verrischten om dode schijven weer tot leven te wekken. De sluitpost is vaak de laatste fase van de recovery, de logische recovery waar bestanden uiteindelijk gered worden en naar een andere schijf geschreven. Vaak wordt hiervoor professionele, echter ‘off-the-shelf’ software voor gebruikt van bijvoorbeeld de bedrijven ReclaiMe-Pro.com, R-TT.com en UFSExplorer.com. De files zoals gepresenteerd door deze software is het eind resultaat. Bij gefragmenteerde bestanden op een FAT bestandssysteem zal dit soort software niet beter presteren dan software bedoeld voor eind gebruikers. En dit is waar DiskTuna zich onderscheidt.

Het repareren van corrupte digitale foto’s

DiskTuna is wereldwijd een van de weinigen die zich waagt aan het herstellen van corrupte digitale foto’s. Dit heeft te maken met de complexiteit van het onderwerp en het feit dat we spreken over een kleine markt. Het repareren van digitale foto’s is arbeidsintensief en duur en weinigen hebben het geld ervoor over. In een extreem geval zou het repareren van een enkele foto zo duur kunnen zijn als het terughalen van alle foto’s en video’s van een totale SD kaart.

Schade aan een afzonderlijk bestand kan bestaan uit:

  1. schade aan bestands-header
  2. Schade aan de ‘payload’, de eigenlijke beeld data
  3. een combinatie

Ik ga bij voorbeelden uit van een JPEG bestand, nog steeds het meest gebruikte formaat m.b.t. digitale fotografie.

Schade aan de bestands-header

De header is de sleutel naar de beeld informatie. Het bevat pointers naar bestandsstructuren en data, maar ook belangrijke tabellen die benodigd is bij het decoderen van beeld data. De informatie in deze tabellen is afhankelijk van de camera, foto resolutie en foto kwaliteit. Het bevat ook tabellen die noodzakelijk zijn om gecomprimeerde beeld data uit te pakken. DiskTuna zal altijd vragen om een intacte foto die is geschoten met dezelfde camera met zoveel mogelijk identieke instellingen.

Als ik de reparatie kan ‘batchen’ is dit een relatief goedkope reparatie. D.w.z. of je nu 100 of 500 foto’s hebt die met dezelfde camera en ongeveer vergeljkbare settings geschoten werden, dan betaal je als voor een logische recovery. Ongeacht het aantal foto’s.

Beschadigde beeld data

Dit is het meest arbeidsintensief om te herstellen en je betaalt per foto. Per foto bepaal ik de schade en de kosten. Over het algemeen laten mensen dit soort reparaties alleen uitvoeren op dierbare en onvervangbare foto’s.

Zoals gezegd is beeld data gecomprimeerd en er is derhalve geen een op een relatie tussen de rauwe data zoals we die aantreffen in een bestand en de afbeelding. Bijvoorbeeld een blauwe lucht bevat veel data die zich goed laat comprimeren. Neem even aan dat deze blauwe lucht 40% van de foto beslaat, t.g.v. compressie zou het kunnen dat de rauwe data slechts 25% van het bestand uitmaakt. Dat betekent dat de pixels op 40% binnen de foto niet correleren met de rauwe data die we 40% binnen het bestand vinden.

Verschillende stadia van herstel van een foto met bit errors die resulteren in een grijs vlak

Verschillende stadia van reparatie van een foto met bit errors

Verder bouwt elk stukje informatie op het voorafgaande, wat betekent dat een enkele corrupte bit gevolgen heeft voor all data die volgt. AI even buiten beschouwing, er is een mens nodig om het effect van corruptie op het beeld te beoordelen. Corrupte rauwe beeld data wordt ‘gepatched’; verwijderd. Het gevolg van elke patch actie moet worden beoordeeld, dit is tijd rovend en arbeids intensief, zelfs met gebruik van de tools die DiskTuna heeft ontwikkeld.

Een combinatie, schade aan header en beeld data

Het is natuurlijk goed mogelijk dat schade aan het bestand zich niet beperkt tot the header. Per bestand moet dan worden bekeken of reparatie mogelijk is. Een ‘spectaculair’ voorbeeld zijn foto’s die het slcahoffer zijn van de DJVU ransomware: Veelal wordt de totale header en een deel van de beeld data ge-encrypt. Met een intact referentie bestand kan DiskTuna dit soort schade deels herstellen!

Waar komt de corruptie vandaan eigenlijk?

Dit is een belangrijke vraag. Corruptie in het bestandssysteem of zelfs de onderliggende laag (het NAND geheugen) zal zich vaak laten aanzien als individuele corrupte foto’s terwijl het repareren in een dergelijk geval geen enkele zin heeft. Als the FAT bijvoorbeeld niet naar de juiste clusters verwijst terwijl de directory entry voor het bestand intact is, lijkt de foto corrupt. In werkelijkheid kan de beeld data zich op de data drager bevinden maar de correcte verwijzing ontbreekt. Er komt ervaring bij kijken om deze situatie te beoordelen. In veel gevallen waar me gevraagd wordt een of meerdere corrupte foto’s te repareren is dit onmogelijk terwijl recovery wel mogelijk is.

Individuele foto's lijken corrupt. Werkelijke oorzaak is schade aan de FAT. I.p.v. reparatie van digitale foto's is dit een recovery geval.

Alle foto’s lijken corrupt. Werkelijke oorzaak is schade aan de FAT.

Om een bestand te repareren met interne schade hebben we slechts het bestand nodig, daar waar de schade een gevolg is van bestandssysteem schade werken we met de gehele gegevens-drager of een image bestand daarvan.

Bijna tot slot een video (versneld) waarin ik een foto met schade in beeld data repareer. Je kunt goed zien hoe corrupte data wordt verwijderd en daarna wordt vervangen door ‘stuff bytes’. Resultaat van dat laatste zijn de horizontale lijnen. Wat niet wordt getoond is het volgende stadium waarbij een foto editor wordt gebruikt om deze lijnen in te vullen (healing brush, in-painting, clone stamp) and miniscule kleur verschillen zoveel mogelijk worden weggewerkt. De software was in eerste instantie bedoeld voor eigen gebruik, maar nu ook verkrijgbaar in de shop.

Privacy

Ik begrijp heel goed dat sommigen schroom hebben om foto’s die vaak dierbare maar ook hele privacy gevoelige afbeeldingen bevatten naar een vreemde op te sturen. Ik word opvallend vaak gevraagd om tamelijk pikante foto’s uit de prive sfeer te repareren. Ook komt het voor dat ik foto’s van juridische documenten, welke nog het enige bewijs van het bestaan van die documenten, repareer.

Ik bekijk foto’s vanuit een technisch perspectief. Zoals een dokter een patient onderzoekt, zeg maar. Ik kijk naar HEX data en individuele MCU’s, dat zijn de kleinste (de)codeerbare blokjes data in een JPEG. Het eigenlijke onderwerp van de foto registreer ik vaak niet eens, daar ben ik niet mee bezig.

We hebben het hier over vertrouwen. Ik kan alleen maar zeggen en benadrukken dat ik de enige ben die de foto’s ooit te zien krijgt. Ik repareer ze, bezorg ze aan je terug en als alles in orde is wis ik ze van mijn PC. Voor foto’s die ik op mijn website heb staan heb ik explicite toestemming. Als je een dergelijke toestemming geeft en je bedenkt je, dan haal ik ze weer weg.

Terzijde, maar ik bespeur hier ook een culturele component: Als ik foto’s van een westerse bruiloft repareer en ik vraag of ik een van de foto’s als ‘show case’ mag gebruiken dan is het antwoord messtal nee. Als hetzelfde vraag m.b.t. een bruiloft uit het verre of midden oosten krijg ik vaker een positief antwoord.