Programma voor het schrijven naar een binair bestand. Hoe een binair SU-bestand op Android bij te werken - root-toegang voor de SuperSu-applicatie herstellen

Werken met binaire bestanden

Alle informatie wordt in de computer opgeslagen in de vorm van 0 en 1, d.w.z. binair. Binaire bestanden verschillen alleen van tekstbestanden in de manier waarop ermee wordt gewerkt. Als we bijvoorbeeld het getal “4” in een tekstbestand schrijven, wordt het als een teken geschreven en is er één byte nodig om het op te slaan. Dienovereenkomstig zal de bestandsgrootte gelijk zijn aan één byte. Een tekstbestand met de vermelding: "145687" zal zes bytes groot zijn.

Als u het gehele getal 145.687 in een binair bestand schrijft, zal het vier bytes groot zijn, aangezien dat de hoeveelheid is die nodig is om de gegevens op te slaan. typ int. Dat wil zeggen dat binaire bestanden compacter zijn en in sommige gevallen gemakkelijker te verwerken.

Dossier standaard typen gegevens naar binaire bestanden

Om een ​​binair bestand te openen, moet u de toegangsmodus instellen op ios::binary (in sommige C++-compilers, ios::bin).

Om een ​​uitvoerbestand te maken, maakt u een object:

ofstream outBinFile("out.bin", ios::out | ios::binary);

/* het maken van een klasseobject vanstroom uit. bak

als (! uit_f ik 1) // standaardcontrole

Gegevens worden geschreven met behulp van de write()-methode, die twee parameters heeft: de eerste is een verwijzing naar het begin (startadres) van de gegevens die worden geschreven, de tweede is het aantal te schrijven bytes. In dit geval moet de pointer expliciet worden geconverteerd naar het char-type.

Voorbeeld 1. Schrijf variabelen van verschillende typen naar een binair bestand:

ofstream outBinFile("test.bin", ios::out I

ios::binair); /^een klasseobject maken van stroom en probeer het aan een bestand te koppelen test. bak in opnamemodus binair bestand */

inta - 145687; //declaratie van een gehele variabele A

outBinFi-bestand. write ((char*) &a, grootte van (a)) ; /^schrijven naar bestand

variabel A als een stroom bytes, d.w.z. de interne representatie van de gehele variabele naar een bestand schrijven a */ vlotter x - 123,25; // declaratie van een reële variabele X

outBinFile .write ((char*) &x, grootte van (x)) ; /^schrijven naar bestand

variabel X als een stroom bytes, d.w.z. de interne representatie van de gehele variabele x*/ naar een bestand schrijven

//definitie van een symbolische variabele Met en initialiseren met het symbool g outBinFile.write((char*)&c, groottevan(c));

// neem een ​​symbool op G archiveren

outBinFile.close(); retour 0;

Als u de inhoud van het testbin-bestand opent teksteditor, dan ziet het er als volgt uit:

en de bestandsgrootte zal 9 bytes zijn.

Standaardgegevenstypen uit binaire bestanden lezen

Om een ​​bestaand binair bestand te openen om te lezen, moet u een object maken:

ifstream inpBinFile("inp.bin", ios::in I ios::binary);

/* we gebruiken een combinatie van vlaggen die aangeven dat het bestand is geopend voor lezen in binaire vorm */

als (! inpBinFile)

coutOm gegevens te lezen, gebruiken we de functie read(), die parameters heeft die vergelijkbaar zijn met de functie write().

#include gebruikt naamruimte std; int hoofd()

ifstream inpBinFile("test.bin", ios::in I

ios::binair); / /open het bestand om het in binaire vorm te lezen

int a; zweven x; teken c = "g";

inpBinFile.read((char*)&a, groottevan(a));

//lees een geheel getalvariabele inpBinFile.read((char*)&x, groottevan(x));

//lees een echte variabele inpBinFile.read((char*)&c, groottevan (c));

//lees een symbolische variabele

inpBinFile.close(); uit

Resultaat van het programma:

a = 145687 x = 123,25 s = g

Houd er rekening mee dat er geen informatieconversie plaatsvindt bij gebruik van de schrijf- en leesfuncties. De interne weergave van gegevens wordt naar het bestand geschreven en uitgelezen. Daarom twee eerdere programma's gaf het juiste resultaat.

Schrijf en lees aangepaste typen gegevens naar binaire bestanden

In tegenstelling tot tekstbestanden verschilt het werken met aangepaste gegevenstypen met behulp van binaire bestanden niet van standaardgegevenstypen. De methoden write() en read() worden op dezelfde manier gebruikt. De programmeur hoeft alleen het adres van de te schrijven geheugensectie en het aantal te schrijven bytes aan te geven, waarbij hij er rekening mee moet houden dat er geen dataconversie plaatsvindt, maar alleen de interne representatie van informatie wordt geschreven en gelezen.

Wanneer u met binaire bestanden werkt, kunnen ook de methoden seekg(), tellg(), seekp() en tellp() worden gebruikt.

Voorbeeld 3. Schrijf een programma dat informatie over een groep toeristen naar een binair bestand schrijft.

fstream BinFile("ankety.bin", ios::in I ios::uit | ios::binary);

Anketa Gruppa = ; voor (int i = 0; ik

BinFile.write((char*)&Gruppa[i], groottevan(Anketa)); BinFile.close(); retour 0;

Voorbeeld 4. Het bestand “ankety.bin” bevat gegevens over een groep toeristen; het is noodzakelijk om het te lezen en op het scherm weer te geven.

#include gebruikt naamruimte std; struct-vragenlijst (

tekennaam; int leeftijd;

structureel gegevenstype Vragenlijst naar scherm*/

ostream&-operator

fstream BinFile("ankety.bin", ios::in | ios::uit | ios::binary); als (!BinFile)

voor (int i = 0; ik

//lees alle bytes die in één keer bezet zijn variabel type Anketa BinFile.read((char*)&Gruppa[i], groottevan(Anketa));

BinFile.close(); retour 0;

Resultaat van het programma:

Ivanov, 23 Sidorov, 21 Petrov, 22

Druk op een willekeurige toets om door te gaan. . .

Ontwikkel uw eigen klassen voor het werken met bestanden

Het is lastig om voortdurend de methoden write() en read() te gebruiken; het is veel prettiger om de bewerkingen “>” te kunnen gebruiken naar analogie met tekstbestanden. Laten we een voorbeeld geven van de implementatie van onze klasse voor het werken met binaire bestanden.

naamruimte std gebruiken;

structuurvragenlijst //declare een structuur voor het opslaan van informatie

/*overlaad de invoegbewerking in een stream voor aangepaste uitvoer

structureel gegevenstype Vragenlijst naar scherm*/

ostream&-operator

class outBinaryFile: openbaar of stream /^definieer onze klasse voor het werken met weekenden binaire bestanden. We leiden het af van de klasse voor het werken met uitvoerbestandsstreams */

/*Vergeet bij het beschrijven van de constructor van een gegenereerde klasse niet de constructor van de basisklasse aan te roepen en de benodigde parameters door te geven*/

outBinaryFile(char* naam): ofstream(naam, ios::out I ios::binary)

// overlaad de noodzakelijke bewerkingen als klassenmethoden outBinaryFile&-operator

write((char*)&chislo, groottevan(chislo)); retourneer *dit;

outBinaryFile&-operator

write((char*)&ank, groottevan(ank)); retourneer *dit;

klasse inpBinaryFile: openbaar als stream /* We definiëren onze klasse voor het werken met binaire invoerbestanden. We leiden het af van de klasse voor het werken met invoerbestandsstreams */

inpBinaryFile(char* naam): ifstream(naam, ios::in I ios::binary)

/*de basisklasseconstructor aanroepen met de benodigde parameters,

voldoende voor de constructor van de afgeleide klasse */

// overbelast de noodzakelijke bewerkingen

inpBinaryFile& operator >> (int& nummer)

read((char*)&chislo, groottevan(chislo)); retourneer *dit;

inpBinaryFile& operator >> (Anketa& ank)

read((char*)&ank, groottevan(ank)); retourneer *dit;

int a = 111, b = 112; outBinaryFile outFile("dannye.bin");

//open het bestand om te lezen

inpBinaryFile inpFile("dannye.bin"); als (!inpFile)

voor (int i = 0; ik

inpBestand >> a; //lees het profiel uit het bestand

cout //en geef het weer op het scherm

inpFile >> vragenlijst; uit

Resultaat van het programma:

Kolya, 1990, 582-78-95.

Druk op een willekeurige toets om door te gaan. . .

1. Is het mogelijk om een ​​bewerking in een programma te gebruiken?

ios::in I ios::uit

  • a) ja, in ieder geval;
  • b) ja, maar alleen bij het werken met tekstbestanden;
  • c) nee, in ieder geval.
  • 2. Geef de juiste optie op voor het openen van een tekstbestand om te lezen:
    • a) ifstream inpF("input.txt", ios::in);
    • b) ifstream inpF("input.txt", ios::input);
    • c) ifstream inpF(ios:in, "invoer.txt").

H. Wat wordt er op het scherm weergegeven als gevolg van het uitvoeren van de volgende code?

invoerbestand.get(c);

volgende - inputFile.peek();

als (volgende == EOF)

  • a) de inhoud van het bestand dat bij de inputFile-stream hoort, wordt één keer op het scherm weergegeven;
  • b) de inhoud van het bestand dat aan de inputFile-stream is gekoppeld, wordt op het scherm weergegeven oneindig aantal eenmaal;
  • c) Er wordt niets op het scherm weergegeven.
  • 4. Hoeveel tekens bevat het bestand?
  • 12 3 4 5 6
  • a) 6;
  • b) 7;
  • c) 11.
  • 5. Met welke methoden kunt u het einde van een bestand bepalen?
  • a) eof();
  • b) goed();
  • c) beide methoden.
  • 6. Wat is het doel van de functie getline()?
  • a) leest een woord uit een bestand;
  • b) leest de volledige inhoud van het bestand;
  • c) leest een regel uit een bestand.
  • 7. Om aangepaste gegevenstypen naar een bestand te schrijven/lezen, moet u:
    • a) overbelast de bewerkingen “>>” en “
    • b) het schrijven en lezen van aangepaste gegevenstypen is beschikbaar zonder aanvullende acties;
    • c) het schrijven en lezen van aangepaste gegevenstypen naar het bestand is onmogelijk.
  • 8. Welke functies worden gebruikt om informatie in binaire vorm te schrijven/lezen?
  • a) printf/scanf;
  • b) schrijven / lezen;
  • c) zetten/krijgen.
  • 1. Schrijf een programma dat de letters van het Engelse alfabet naar een bestand schrijft.
  • 2. Het input.txt-bestand bevat informatie van verschillende tekstreeksen. Geef de inhoud van dit bestand weer op het scherm, tel het aantal regels in het bestand.
  • 3. De schijf bevat het result.txt-bestand met de resultaten van chemische experimenten. Schrijf een programma dat een kopie van dit bestand maakt met de naam copy_resylt.txt.
  • 4. Voer de bestandsnaam in met behulp van het toetsenbord. IN opgegeven bestand verwijder alle even lijnen.
  • 5. Schrijf een programma dat alles in een tekstbestand vervangt kleine letters in hoofdletters, en omgekeerd.
  • 6. Het brontekstbestand bevat cijfers gescheiden door spaties. Genereer twee nieuwe bestanden: de eerste mag alleen even cijfers, en de tweede - oneven.
  • 7. Het bestand bevat reële getallen. Schrijf een programma dat verwijdert fractioneel deel deze nummers en schrijft ze naar een nieuw bestand.
  • 8. Een tekstbestand bevat informatie over vluchten van luchtvaartmaatschappijen. Selecteer uit deze gegevens vluchten die in de middag vertrekken en geef ze weer op het scherm.
  • 9. Overbelast >> en operators
  • 10. Schrijf uw eigen klasse om met binaire bestanden te werken.
  • 11. Schrijf de lijst met tien leerlingen in de klas in een tekstbestand en in een binair bestand. Vergelijk deze bestanden. Verklaar het resulterende verschil.
  • 12. Ontwikkel een klasse die informatie over auto's (bouwjaar, merk, kleur, enz.) naar een tekstbestand schrijft. In dit geval wordt elk informatiesymbool vervangen door een eigen ABO 1-code. Geef het resulterende bestand op het scherm weer.

Beveiligingsvragen

  • 1. Welke klassen worden gebruikt om met bestandsstreams te werken?
  • 2. Welke toegangsmodi kunnen worden gebruikt bij het werken met bestanden? Geef voorbeelden.
  • 3. Welke methode wordt gebruikt om een ​​bestand te openen? Geef voorbeelden.
  • 4. Welke bewerkingen zijn beschikbaar voor het werken met bestanden? Welke functies zijn beschikbaar om deze bewerkingen uit te voeren?
  • 5. Met welke methoden kunt u het einde van een bestand bepalen wanneer u er informatie uit leest? Wat is het verschil tussen deze methoden? Geef voorbeelden.
  • 6. Hoe kun je variabelen van standaardgegevenstypen uit tekstbestanden lezen?
  • 7. Is het mogelijk om aangepaste gegevenstypevariabelen uit tekstbestanden te lezen?
  • 8. Welke functies zijn ontworpen om willekeurig informatie uit een bestand te lezen? Geef voorbeelden.
  • 9. Noem de kenmerken van binaire bestanden. Wat zijn de voordelen van het gebruik van dergelijke bestanden?
  • 10. Welke functies kunnen worden gebruikt om informatie in binaire bestanden te schrijven/lezen?
  • 11. Hoe lees ik variabelen van standaardgegevenstypen uit een binair bestand?
  • 12. Met welke overwegingen moet rekening worden gehouden bij het lezen van aangepaste gegevenstypen uit binaire bestanden?
  • "Ivanov", 23), ("Sidorov", 21),

Bestanden. Tegelijkertijd vanuit het oogpunt technische implementatie op hardwareniveau, tekstbestanden zijn een speciaal geval van binaire bestanden, en dus voldoet elk bestand in de brede zin van het woord aan de definitie van “binair bestand”.

Binaire bestanden worden vaak gebruikt om te verwijzen naar uitvoerbare bestanden en gecomprimeerde gegevens, maar het is onjuist om dit concept op een dergelijke manier te beperken.

Visualisatie

Om een ​​binair bestand visueel weer te geven, wordt het opgedeeld in stukken van gelijke grootte, weergegeven als getallen, meestal geschreven in hexadecimaal, soms in octaal, binair of decimaal. De aangegeven chunkgrootte kan gelijk zijn aan één octet, maar ook aan twee of vier (in het geval van opsplitsing in chunks van meerdere octetten wordt de bytevolgorde gebruikt die op het gebruikte platform is aangenomen). De afhankelijkheid van het bereik van weergegeven getallen van de grootte van het stuk wordt weergegeven in de tabel:

octetten aantal bits hexadecimaal octaal decimale
niet ondertekend
decimale
iconisch
1 8 00

FF
000

377
0

255
-128

127
2 16 0000

FFFF
000000

177777
0

65535
-32768

32767
4 32 00000000

FFFFFFFF
00000000000

37777777777
0

4294967295
-2147483648

2147483647

Vaak worden naast de numerieke bytewaarden ook codepaginatekens weergegeven, bijvoorbeeld in afgedrukte ASCII-tekens aan de rechterkant) aan het begin van het Wikipedia-logo PNG-bestand:

00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 87 00 00 00 a0 08 03 00 00 00 11 90 8f |............| 00000020 b6 00 00 00 04 67 41 4d 41 00 00 d6 d8 d4 4f 58 |.....gAMA.....OX| 00000030 32 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 |2....tEXtSoftwar| 00000040 65 00 41 64 6f 62 65 20 49 6d 61 67 65 52 65 61 |e.Adobe ImageRea| 00000050 64 79 71 c9 65 3c 00 00 03 00 50 4c 54 45 22 22 |dyq.e<....PLTE""| 00000060 22 56 56 56 47 47 47 33 33 33 30 30 30 42 42 42 |"VVVGGG333000BBB| 00000070 4b 4b 4b 40 40 40 15 15 15 4f 4f 4f 2c 2c 2c 3c |KKK@@@...OOO,<| 00000080 3c 3c 3e 3e 3e 3a 39 39 04 04 04 1d 1d 1d 35 35 |<<>>>:99......55| 00000090 35 51 50 50 37 37 37 11 11 11 25 25 25 0d 0d 0d |5QPP777...%%%...| 000000a0 27 27 27 1a 1a 1a 38 38 38 2a 2a 2a 08 08 08 20 |"""...888***... | 000000b0 20 20 17 17 17 2e 2e 2e 13 13 13 bb bb bb 88 | ...............|

Hulpmiddelen

Voor visualisatie

  • debuggen (op Microsoft Windows, gedeeltelijk)
  • hexdump (in GNU/Linux, enz.)

Voor bewerken

Literatuur

  • Webster's New World Dictionary of Computer Terms, 4e. Ed, Prentice Hall, NY, 1992. ISBN 0-671-84651-5
  • Leontyev BK

Stichting Wikimedia.

2010.

    Kijk wat een “binair bestand” is in andere woordenboeken: Zelfstandig naamwoord, m., gebruikt. vergelijken vaak Morfologie: (nee) wat? bestand, niet? bestand, (zie) wat? bestand, wat? dossier, waarover? over het bestand; pl. Wat? bestanden, (nee) wat? bestanden, wat? bestanden, (zie ik) wat? bestanden, wat? bestanden, waarover? over bestanden 1. Een bestand is een array... ...

    Dmitrievs verklarend woordenboek

    Binair bestand in de breedste zin van het woord: een reeks willekeurige bytes. De naam is te danken aan het feit dat bytes uit bits bestaan, dat wil zeggen binaire cijfers. In de enge zin van het woord zijn binaire bestanden het tegenovergestelde van tekstbestanden.... ...Wikipedia

    Binair bestand in de breedste zin van het woord: een reeks willekeurige bytes. De naam is te danken aan het feit dat bytes uit bits bestaan, dat wil zeggen binaire cijfers. In de enge zin van het woord zijn binaire bestanden tegengesteld... ...Wikipedia configuratiebestand - Een binair of tekstbestand met informatie die het gedrag van een applicatie, computer of netwerkapparaat bepaalt.

    Onderwerpen computernetwerk NL configuratiebestand...

    Handleiding voor technische vertalers

    Deze term heeft andere betekenissen, zie IPA (betekenissen). .IPA-formaat voor archiefbestanden van Apple-applicaties voor iPhone, iPod Touch en iPad. Bestanden met deze extensie worden opgeslagen in de App Store en gedownload met iTunes voor... ... Wikipedia

    Gopher-naam: Gopher Poort/ID: 70/TCP-specificatie: RFC 1436 Belangrijkste implementaties (clients): Mozilla Firefox, Microsoft Windows: IE 5.x, IE 6 (beperkt tot MS) Gopher-netwerkprotocol voor gedistribueerd zoeken en documentoverdracht, voorheen veel gebruikt... Wikipedia

    Naam: Gopher Poort/ID: 70/TCP Specificatie: RFC 1436 Belangrijkste implementaties (clients): Mozilla Firefox, Microsoft Windows: Internet Explorer 5.x, Internet Explorer 6 (beperkt tot MS) Gopher-netwerkprotocol voor gedistribueerd zoeken en verzenden. ... Wikipedia

    - / * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Opmerking: aangezien de bestandsnaamextensie van alles kan zijn, is de weergegeven lijst niet compleet... Wikipedia

records), dan is het heel begrijpelijk dat u op de een of andere manier de ongebruikte maar bezette geheugenruimte wilt verkleinen.

Vooral voor dergelijke gevallen zijn er records met variantgedeelte.

Beschrijving van record met variantonderdeel

In de var-sectie record met variantgedeelte als volgt beschreven:

var<имя_записи>:dossier<поле1>: <тип1>; [<поле2>: <тип2>;] [...] geval<поле_переключатель>: <тип>van<варианты1>: (<поле3>: <тип3>; <поле4>: <тип4>; ...); <варианты2>: (<поле5>: <тип5>; <поле6>: <тип6>;

...);[...] einde;

Niet-variant onderdeel vermeldingen (vóór het trefwoord case) volgen dezelfde regels als gewone vermeldingen. Over het algemeen kan het niet-variante deel volledig ontbreken. Variant onderdeel begint met het gereserveerde woord hoofdletter, waarna het veld van het record wordt aangegeven, dat vervolgens als schakelaar zal dienen. Net als bij een reguliere case-instructie moet de switch tot een van de volgende behoren

enum-typen gegevens (zie hoorcollege 3). De lijst met opties kan een constante, een bereik of de vereniging van verschillende constanten of bereiken zijn. De set velden die in de recordstructuur moet worden opgenomen als de bijbehorende optie wordt uitgevoerd, staat tussen haakjes.

Voorbeeld . Om de inhoud van de bibliotheek te beschrijven, zijn de volgende gegevens nodig::

De kolommen “Titel” en “Uitgever” zijn gemeenschappelijk voor alle drie de opties, en de overige velden zijn afhankelijk van het type publicatie. Om deze structuur te implementeren zullen we gebruiken

record met een variantgedeelte

type biblio = recordnaam,uitgever: string;

case-item: char van "b": (auteur: string; jaar: 0..2004); record met variantgedeelte, wordt bepaald door de “langste” versie. De "kortere" veldensets van andere opties nemen slechts een deel van het toegewezen geheugen in beslag.

In het bovenstaande voorbeeld is de "langste" optie "b": deze vereist 23 bytes (21 bytes voor string en 2 bytes voor geheel getal). De opties "n" en "m" vereisen respectievelijk 4 en 5 bytes (zie tabel).

naam, uitgever item Niet-variant onderdeel
... "B" auteur jaar
... "N" gegevens
... "M" jaar maand nummer
... "B" auteur jaar

Binaire bestanden

Binaire bestanden slaan informatie op in de vorm waarin deze wordt gepresenteerd in het geheugen van de computer en zijn daarom lastig voor de mens. Als je naar zo'n bestand kijkt, is het onmogelijk om te begrijpen wat erin staat; het kan niet handmatig worden gemaakt of gecorrigeerd - in een teksteditor - enz. Al deze ongemakken worden echter gecompenseerd door de snelheid waarmee met data wordt gewerkt.

Bovendien worden tekstbestanden geclassificeerd als structuren sequentiële toegang, en binair - direct. Dit betekent dat u op elk moment toegang heeft tot elk element, en niet alleen tot het huidige element

Veel mensen hebben vaak een vraag over het openen van een binair bestand. Dit document is elk bestand dat zich op een pc bevindt. Alle gegevens die zich op computers en daaraan gekoppelde media bevinden, worden doorgaans in bits vastgelegd. Van dit woord komt de naam. Als u ter vergelijking een eenvoudig tekstbestand gebruikt, zijn er geen problemen bij het lezen ervan. Om dit te doen, is het voldoende om een ​​gewone editor op uw computer te hebben; zelfs een notitieblok is voldoende. Om een ​​binair bestand te openen, kunt u geen eenvoudig notitieblok gebruiken. En als we het hebben over het feit dat de informatie in tekstbestanden met dezelfde bits is gecodeerd, dan bedoelen ze meestal uitvoerbare documenten als ze het hebben over het lezen van binaire bestanden.

Instructies voor actie

Eerst moet u een softwaretool genaamd HexEditor, een eenvoudige editor voor binaire bestanden, op de harde schijf van uw pc installeren. Na de installatie moet het programma worden geopend door te dubbelklikken op het pictogram. Met deze tool kunt u een binair bestand in de echte modus lezen. In dit geval kunt u de gegevens in het bestand wijzigen, uw eigen gegevens toevoegen, enz. Om in deze editor te kunnen werken en een binair bestand te kunnen wijzigen, moet u op zijn minst enige kennis op dit gebied hebben.

Ten tweede moet u vertrouwd raken met het hoofdvenster, dat niet veel verschilt van het venster van een gewone editor. Dezelfde knoppen, hetzelfde menu, documenttekst, bladwijzers en statusbalken. U kunt het gewenste bestand openen via het tabblad Bestand of via een speciale knop in het programma. Hierna kunt u het uitvoerbare bestand zien, dat zal verschijnen in de vorm van cijfers en letters. Je moet de symbolen waarmee een binair bestand wordt weergegeven niet verwarren met de symbolen die een gewone editor heeft. In het geval dat wordt besloten om een ​​deel van het document te verwijderen of te wijzigen, moet men begrijpen dat een deel ervan zal verdwijnen of veranderen.

Ten derde kunt u met behulp van het programma proberen elk deel van het document te wijzigen. Zoals eerder vermeld, toont de softwaretool het bestand op een manier die de manier verbetert waarop u het deel van het document kunt vinden dat u nodig heeft. Bovendien is het programma vrij flexibel qua configuratie. Met zijn hulp kunt u de grafische weergave van de binaire code met een binair bestand wijzigen. Als er in een deel van het bestand onjuiste gegevens worden ingevoerd, kan het zijn dat het bestand vervolgens helemaal niet meer werkt of niet helemaal correct begint te werken. Hoe dan ook zal het invoeren van dergelijke gegevens veranderingen veroorzaken, zowel in het besturingssysteem als rechtstreeks op de pc zelf.

Ten vierde moet u, na het wijzigen, verwijderen of toevoegen van bepaalde gegevens in een bestand, het resultaat van uw werk bewaren. Als u niet voldoende ervaring heeft met het bewerken van bestanden, moet u voorbereid zijn op niet geheel prettige gevolgen. Een document kan bijvoorbeeld niet meer werken nadat gegevens zijn gewijzigd. Totdat u dit probleem goed begint te begrijpen, zullen veel kopieën van bestanden beschadigd raken. Als u niet zeker bent van uw mogelijkheden, mag u de gegevens niet zelf wijzigen, vooral niet in situaties waarin het sub-binaire bestand moet worden gecorrigeerd.

Bestanden. Bovendien zijn tekstbestanden, vanuit het oogpunt van technische implementatie op hardwareniveau, een speciaal geval van binaire bestanden, en dus voldoet elk bestand in de brede zin van het woord aan de definitie van “binair bestand”.

Over het algemeen vertegenwoordigt deze term een ​​maatstaf voor de relatie tussen de consument van een binair bestand en het bestand zelf. Als de consument de structuur en regels kent waarmee hij een bepaald bestand naar een bestand op een hoger niveau kan converteren, dan is het voor hem niet binair. Uitvoerbare bestanden zijn bijvoorbeeld binair voor de computergebruiker, maar niet binair voor het besturingssysteem. [ ]

Visualisatie

Om een ​​binair bestand visueel weer te geven, wordt het opgedeeld in stukken van gelijke grootte, weergegeven als getallen, meestal geschreven in hexadecimaal, soms in octaal, binair of decimaal. De aangegeven chunkgrootte kan gelijk zijn aan één octet, maar ook aan twee of vier (in het geval van opsplitsing in chunks van meerdere octetten wordt de bytevolgorde gebruikt die op het gebruikte platform is aangenomen). De afhankelijkheid van het bereik van weergegeven getallen van de grootte van het stuk wordt weergegeven in de tabel:

octetten aantal bits hexadecimaal octaal decimale
niet ondertekend
decimale
iconisch
1 8 00

FF
000

377
0

255
-128

127
2 16 0000

FFFF
000000

177777
0

65535
-32768

32767
4 32 00000000

FFFFFFFF
00000000000

37777777777
0

4294967295
-2147483648

2147483647

Vaak worden naast de numerieke bytewaarden ook codepaginatekens, zoals ASCII, uitgevoerd. Het volgende voorbeeld toont de zogenaamde. klassieke dump(hexadecimale weergave van octet voor octet van 16 bytes per regel, met afdrukbare ASCII-tekens aan de rechterkant) van het begin van het PNG-bestand met het Wikipedia-logo:

00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 87 00 00 00 a0 08 03 00 00 00 11 90 8f |............| 00000020 b6 00 00 00 04 67 41 4d 41 00 00 d6 d8 d4 4f 58 |.....gAMA.....OX| 00000030 32 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 |2....tEXtSoftwar| 00000040 65 00 41 64 6f 62 65 20 49 6d 61 67 65 52 65 61 |e.Adobe ImageRea| 00000050 64 79 71 c9 65 3c 00 00 03 00 50 4c 54 45 22 22 |dyq.e<....PLTE""| 00000060 22 56 56 56 47 47 47 33 33 33 30 30 30 42 42 42 |"VVVGGG333000BBB| 00000070 4b 4b 4b 40 40 40 15 15 15 4f 4f 4f 2c 2c 2c 3c |KKK@@@...OOO,<| 00000080 3c 3c 3e 3e 3e 3a 39 39 04 04 04 1d 1d 1d 35 35 |<<>>>:99......55| 00000090 35 51 50 50 37 37 37 11 11 11 25 25 25 0d 0d 0d |5QPP777...%%%...| 000000a0 27 27 27 1a 1a 1a 38 38 38 2a 2a 2a 08 08 08 20 |"""...888**... | 000000b0 20 20 17 17 17 2e 2e 2e 13 13 13 bb bb bb 88 88 | . ............|

Hulpmiddelen

Voor visualisatie

  • debuggen (op Microsoft Windows, gedeeltelijk)
  • hexdump (op FreeBSD, GNU/Linux, enz.)

Voor bewerken

  • HEX-editor
    • beye (voor alle besturingssystemen, gratis software)
    • hiew (voor DOS, Microsoft Windows, Windows NT)
    • WinHex (voor Windows)