Wat is een Hex Dump?
Een hex-dump is een momentopname van computergeheugen, meestal weergegeven als tekst op een scherm of in een afdruk. Hexadecimaal, of hex, is een systeem met 16 basisnummers dat door computers wordt gebruikt om binaire code weer te geven wanneer mensen deze moeten lezen. Computerdumps zijn de gebruikelijke naam voor het schrijven van informatie in het geheugen naar een bestand, vaak vóór een softwarefout. Met dat in gedachten wordt een hex-dump meestal gebruikt door mensen om precies datgene te doen wat een computer deed vlak voor een crash.
Om een hex-dump te begrijpen, is het noodzakelijk om een beetje te begrijpen over hoe alternatieve nummerstelsels werken. Nummerstelsels worden genoteerd als zijnde base- [waarde]. De waarde in een nummersysteem bepaalt hoeveel cijfers er in het systeem voorkomen. De meeste mensen gebruiken bijvoorbeeld normaal een base-10-systeem dat tien getallen heeft, nul tot negen. Hoewel het misschien moeilijk is om nummerstelsels te begrijpen die anders zijn dan base-10, is het heel eenvoudig voor computers. Verschillende basistelsystemen zorgen voor snellere programma's en betere opslagmethoden dan een standaard base-10-systeem.
De meeste computercode werkt in binair, een reeks van enen en nullen die aan en uit staan in het magnetische geheugen van de computer. Als een base-2 systeem heeft binary zeer grote getallen die relatief kleine base-10 getallen vertegenwoordigen. Als voorbeeld is "1001" in binair getal gelijk aan negen in base-10. Wanneer computers binaire gegevens opslaan, doen ze dit in twee blokken van vier cijfers, een byte, die elk één getal vertegenwoordigen. Een blok dat "0100 1101" leest, is "4 13" in notatie met basis-10.
Hexadecimaal is een basis-16 getallenstelsel dat de waarden nul tot en met 15 bevat. Aangezien het grootste getal dat in vier cijfers van binair getal kan worden geschreven "1111" of "15" in basis-10 is, is het viercijferige binaire getal gemakkelijker en korter om in hex te schrijven. Door waarden in hexadecimale waarden te schrijven, wordt elke byte verkort van acht tot twee cijfers.
Een typische hex-waarde kan er iets anders uitzien dan een basis-10-cijfer. Terwijl de waarden voor nul tot en met negen hetzelfde blijven, krijgen 10 tot en met 15 een enkele representatieve waarde. Deze waarden worden weergegeven met AF. In base-10 zou dit een eenvoudig wiskundeprobleem zijn: 4 + 11 = 15. In hexadecreet zou hetzelfde probleem er als volgt uitzien: 4 + B = E.
Hex dumps gebruiken al deze conversies en getallen om een tekstweergave uit te spuwen van wat er op het moment van de dump in het geheugen van de computer is geschreven. Een typische hex-dump heeft regel na regel getallen in strakke en consistente kolommen, allemaal geschreven in hex. De eerste kolom is het geheugenadres van de lijn en bestaat uit zeven cijfers. Na het geheugenadres worden de waarden van die ruimte geconverteerd naar hex van binair. Dit zijn meestal groepen van twee waarden, die één byte vertegenwoordigen, of vier waarden die twee vertegenwoordigen. De laatste kolom is de controlesom van het adres, een waarde die wordt gebruikt om de nauwkeurigheid van de informatie te verifiëren, en bestaat meestal uit zes cijfers.