Hex editor
En hex-redigerare (eller binär filredigerare eller byteredigerare ) är ett datorprogram som tillåter manipulering av de grundläggande binära data som utgör en datorfil . Namnet 'hex' kommer från ' hexadecimal ', ett numeriskt standardformat för att representera binära data. En typisk datorfil upptar flera områden på lagringsmediet, vars innehåll kombineras för att bilda filen. Hexredigerare som är designade för att analysera och redigera sektordata från de fysiska segmenten av disketter eller hårddiskar kallas ibland sektorredigerare eller diskredigerare .
Detaljer
Med en hex-redigerare kan en användare se eller redigera det råa och exakta innehållet i en fil, i motsats till tolkningen av samma innehåll som andra tillämpningsprogram på högre nivå kan associera med filformatet . Detta kan till exempel vara rå bilddata, i motsats till hur bildredigeringsprogram skulle tolka och visa samma fil.
Hex-redigerare kan användas för att korrigera data som skadats av system- eller programproblem där det kanske inte lönar sig att skriva ett speciellt program för att göra korrigeringarna. De är användbara för att kringgå applikationsredigeringskontroller som kan förhindra korrigering av felaktiga data. De har använts för att "lappa" körbara program för att ändra eller lägga till några instruktioner som ett alternativ till omkompilering. Programfixar för IBM stordatorsystem distribueras ibland som patchar istället för att distribuera en fullständig kopia av det berörda programmet.
I de flesta hex-redigeringsapplikationer representeras data i datorfilen som hexadecimala värden grupperade i 4 grupper om 4 byte (eller två grupper om 8 byte), följt av en grupp med 16 utskrivbara ASCII -tecken som motsvarar varje par av hexadecimala värden (varje byte). Icke-utskrivbara ASCII-tecken (t.ex. Bell) och tecken som tar mer än ett teckenutrymme (t.ex. tabb) representeras vanligtvis av en punkt (".") i följande ASCII-fält.
- Storleksgränser
Till skillnad från konventionella textredigerare kan Hex-redigerare effektivt hantera filer med obestämda storlekar, eftersom endast en del av filen laddas när du bläddrar i den och ändras när du sparar den, snarare än hela filen på en gång.
Tidig historia
Sedan uppfinnandet av datorer och deras olika användningsområden har en mängd olika filformat skapats. Under vissa speciella omständigheter var det bekvämt att kunna komma åt data som en serie råsiffror. Ett program som heter SUPERZAP (AMASPZAP) var tillgängligt för IBM OS/360- system som kunde redigera rådiskposter och även förstod formatet på körbara filer. Par av hexadecimala siffror (varje par kan representera en byte) är den nuvarande standarden, eftersom de allra flesta maskiner och filformat som används idag hanterar data i enheter eller grupper om 8-bitars byte. Hexadecimala och även oktala är vanliga eftersom dessa siffror låter en se vilka bitar i en byte som är inställda. Idag blir decimal representation istället för hexadecimal representation ett populärt andra alternativ på grund av den mer välbekanta talbasen och ytterligare hjälpverktyg, såsom mallsystem och datainspektörer, som minskar fördelarna med det hexadecimala numeriska formatet. [ citat behövs ]
Mallsystem
Vissa hex-redigerare erbjuder ett mallsystem som kan presentera sekvensen av byte i en binär fil på ett strukturerat sätt, som täcker delar av eller hela det önskade filformatet. Vanligtvis är det grafiska gränssnittet för en mall ett separat verktygsfönster bredvid den huvudsakliga hex-redigeraren. Vissa fuskmotorsystem består bara av ett sådant mall-GUI.
Vanligtvis representeras en mall som en lista med märkta textrutor, så att enskilda värden för en fil enkelt kan redigeras i lämpligt format (t.ex. som sträng, färg eller decimaltal). Utan mallstöd är det nödvändigt att hitta rätt offset i en fil där värdet som ska ändras lagras. Dessutom kan rå hex-redigering kräva konvertering från hexadecimal till decimal, med hänsyn till byteordning eller andra egenheter för datatypkonvertering.
Mallar kan lagras som filer, därigenom utbytas av användare, och delas ofta offentligt över tillverkarens webbplats. De flesta om inte alla hex-redigerare definierar sitt eget mallfilformat; det finns ingen trend att stödja en standard eller ens kompatibilitet mellan de olika formaten ute i naturen.
Skriptsystem
Avancerade hex-redigerare har skriptsystem som låter användaren skapa makroliknande funktioner som en sekvens av användargränssnittskommandon för att automatisera vanliga uppgifter. Detta kan användas för att tillhandahålla skript som automatiskt korrigerar filer (t.ex. spelfusk, modding eller produktfixar tillhandahållna av community) eller för att skriva mer komplexa/intelligenta mallar.
Skriptspråk varierar kraftigt, ofta produktspecifika språk som liknar MS-DOS batchfiler, till system som stöder fullfjädrade skriptspråk som Lua eller Python .
Plugin-system
Några få utvalda redaktörer har ett plugin- system som gör det möjligt att utöka GUI och lägga till ny funktionalitet, vanligtvis laddar dynamiska länkbibliotek skrivna på ett C-kompatibelt språk.
Se även
- Linux Information Project. "Hex Editor Definition" . Hämtad 2010-05-30 .