windows - Læs kodede filer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg prøvede at læse nogle filer som billeder, men når jeg prøver at åbne dem med notesblokken, fandt jeg underlige koder som dette:


ÿH‹$0H‹t$8HƒÄ \_ÃÌÌÌÌÌÌH‰$H‰l$H‰t$ WAVAWHƒì ·L


Klik her for at se billedet [6]


Så jeg har følgende spørgsmål:



  1. Hvorfor finder jeg disse underlige symboler i stedet for nuller og dem?

  2. Gør programmører det til sikkerhed eller optimering?

  3. Er dette en kodning som ASCII, at hvert symbol har et unikt decimal og binært tal i forbindelse?

  4. Kan nogen med korrespondentdekoderen læse disse oplysninger?



tak skal du have

Bedste reference


De fleste datafiler som billeder gemmes som hexadecimal. Hvis du kender formatet på filen, kan du bruge en hexadecimal editor (jeg bruger HexEdit) til at se på dataene. [7] [8]


En farve gemmes ofte som RGB, hvilket betyder rød, grøn eller blå, så det er for eksempel en mørk rød:


80 00 00 // (there are no spaces in the real file format, but hex editors add them.)


Formatet af et billede afhænger af, hvordan det er gemt. De fleste billedformater har måder at indkodne forskellen på billedpunkter i stedet for de faktiske pixler selv, fordi der er meget information redundans mellem de forskellige pixels.


For eksempel, hvis jeg har et billede af nattehimlen med fokus på månen, er der sandsynligvis et stort område i et hjørne, der er meget mere end den samme gråton; kodning det uden optimering ville betyde et helvede af en masse filer, der bare læste:


9080b09080b09080b09080b09080b09080b09080b59080b59080b5...


I dette tilfælde er den grå en smule blålig-lilla, der går mod en lysere blå i slutningen. Jeg har gemt det som RGB her - R: 90, G: 80, B: b0 - men der er også andre formater til den lagerplads. Prøv dem her. [9]


I stedet for at notere hver pixel, kunne jeg lige sagt sige '6 masser af blågråt så bliver det lysere i blåt':


=6x9080b0+3x000005+...


Dette reducerer mængden af ​​information, som jeg skal overføre. De fleste optimeringer er ikke helt menneskelige læsbare, men de fungerer på lignende linjer (dette er et generelt informationsprincip, der anvendes i alle slags ting som .zip-filer og ikke kun billeder).


Bemærk, at dette stadig er et tabløs format; Jeg kunne altid komme tilbage til det faktiske pixel-perfekte billede. Bitmaps (.bmp) er tabløse (selvom det selvfølgelig stadig er digitalt, de vil aldrig fange alt, hvad et menneske ser). [10]


En række formater bruger frekvens af billeder til at kode oplysningerne. Det er lidt som at se på en bølgeform for musik, bortset fra det er todimensionale. Afhængigt af prøveudtagningsfrekvensen kan oplysningerne nemt gå tabt her (og ofte er). JPEG'er (.jpg) bruger lossy kompression som denne. [11]


Årsagen til, at du ser ASCII-tegn, er, at nogle af værdierne bare kommer til at falde sammen med ASCII-tekstkoder. Det er rent tilfældighed; Notepad gør sit bedste for at fortolke, hvad der er i det væsentlige gibberish. F.eks. Denne farvesekvens:


4e4f424f4459


tilfældigvis falder sammen med bogstaverne 'NOBODY', men repræsenterer også to pixels ved siden af ​​hinanden. Begge er grå, især venstre (R: 4e, G: 4f, B: 42), hvor den højeste er lidt mere blå (R: 4f, G: 44, B: 59).


Men det er kun hvis dit format lagrer rå pixelinformation ... hvilket er dyrt, så det er sandsynligvis ikke tilfældet.


Billedformater er et smukt fagområde. Den berømte XKCD-tegneserie 'Digital Data' fremhæver optimeringerne i nogle af dem. Derfor skal du generelt ikke bruge JPEG til tekst, men brug noget som PNG (.png) i stedet. [12] [13]