Hex editor
En hex- editor ( eng. hex-editor ), en hexadecimal editor er en applikation til redigering af data, hvor data præsenteres i en " rå form " - som en sekvens af bytes . Det kan enten være en selvstændig applikation eller en komponent af en anden, mere kompleks applikation, såsom en disassembler , debugger , integreret udviklingsmiljø osv.
For at repræsentere værdien af bytes bruges et hexadecimalt ( eng. hex adecimal ) talsystem , som afspejles i editorens titel. Valget af det hexadecimale talsystem skyldes følgende faktorer:
Faktorer
- Platforme med 8-bit bytes er de mest populære . I sådanne platforme kan en byte tage 2 8 =256 værdier i området fra 0 til 255. Tallet 256 10 skrevet i hexadecimal er et rundt trecifret tal - 100 16 .
- Det faktum, at dette tal er trecifret, betyder, at der ikke kræves mere end 2 cifre for at repræsentere et tal i intervallet 0-255 .
- Det faktum, at dette tal er rundt betyder, at alle mulige kombinationer af tal vil blive brugt til repræsentation, og der vil ikke være nogen ubrugte (for eksempel, i tilfælde af at bruge decimalsystemet , forbliver kombinationer svarende til tal fra 256 til 999 ubrugte ).
- Når man bruger det hexadecimale system, viser det sig, at det højre ciffer svarer til de nederste fire bits af byten, og det venstre ciffer i indtastningen svarer til de øverste 4 bits. Derfor kan enhver operation på 4-bit blokke justeret på en bytegrænse forenkles som operationer på de tilsvarende cifre.
- 16 - den mindste base af talsystemet, hvor to cifre er nok til optagelse. Systemer med en mindre base ville kræve allerede tre (eller flere) cifre, og kun talsystemet med base 256 ville give mulighed for at passe ind i et ciffer, hvilket er fuldstændig uanvendeligt i praksis på grund af det store antal cifre i det.
For platforme med en 9-bit byte vil der naturligvis blive brugt tre-cifrede
oktale tal, og en applikation, der ligner funktionalitet, vil blive kaldt en oktober-editor.
De data, som Hex-editoren viser og tillader redigering, kan være:
Interface
Hex-editoren viser dataene som en matrix , hvor hver celle svarer til en byte , skrevet i hexadecimal notation som et tocifret tal (med et indledende nul , hvis det kræves). Antallet af matrixkolonner er en potens af to, oftest 16 eller 8 kolonner, nogle gange 4. Antallet af rækker afhænger af antallet af bytes, der skal vises/redigeres. I tilfælde af 16 kolonner svarer en linje til et afsnit .
Derudover bruges yderligere elementer ofte:
- Til venstre for matricen vises en lineal (vist med blåt i figuren) med tal: hver linje svarer til et tal, der angiver adressen / forskydningen af den første byte på denne linje. Adressetrinnet er lig med antallet af kolonner.
- Over matricen vises en anden linje (vist med grønt i figuren) med tal: over hver kolonne vises forskydningen af byten i denne kolonne i forhold til den første byte af den tilsvarende linje. Summen af tallet svarende til iden -th række og tallet svarende til j-th kolonnen er adressen/forskydningen af byten (i;j)i skæringspunktet mellem den givne række og taget kolonne.
- Til højre for matricen kan de samme data vises, men i en anden fortolkning. Den mest almindeligt anvendte alternative visning af data som ASCII -tekst (vist i fuchsia i figuren ), med bytes, hvis værdier svarer til ikke-udskrivbare tegn, vises som prikker ( ·). Mange redaktører giver dig mulighed for at vælge en vilkårlig kodning for tekstvisningstilstanden. Varianten med visning af data som tekst findes i Hex-editorer til generelle formål. I editorer, der er en del af et særligt program, såsom en debugger, er andre tilstande normalt tilgængelige, såsom adskillelsesliste, adressetips og andre applikationsspecifikke tilstande.
De fleste redaktører giver dig mulighed for at redigere både i venstre halvdel og i højre (hvis tilgængelig). I dette tilfælde er de ændringer, der foretages, sammenhængende [1] .
Simple editorer giver dig kun mulighed for at ændre værdien af valgte bytes individuelt. Avanceret - rediger samlinger af bytes som solide blokke [2] , søg efter sekvenser eller sekvensmønstre.
Hex-editorer til redigering af diskbilleder kan omfatte funktioner til at gendanne et beskadiget filsystem eller utilsigtet slettede filer.
Brug
Hex-editorer bruges til at redigere ikke-tekstdata, når et specialiseret program til redigering af eksisterende data enten ikke er tilgængeligt, eller dets brug er uberettiget eller uønsket. Et eksempel ville være at lave ændringer i et kompileret program uden at genkompilere det. Så ved hjælp af en Hex-editor kan du ændre værdierne for strenge og numeriske konstanter, der er koblet ind i programkoden, hvis du bestemmer deres placering korrekt.
Hvis Hex-editoren har funktionerne som en disassembler, eller målprogrammet allerede er blevet adskilt med et andet værktøj på forhånd, og forskydningen er kendt, kan du foretage en ændring direkte i programkoden og ændre dens adfærd. Dette bruges til fejlretning , hacking , snyd , manuel tweaking .
Da Hex-editoren er et ret alsidigt værktøj, er det ikke muligt at beskrive alle mulighederne for dets brug.
Galleri
-
Den gratis hex-editor KHexEdit inkluderet i KDE (kdeutils)
-
Se PSP i et hjælpeprogram, debugder følger med 32-bit Windows .
-
Hex editor inkluderet i OllyDbg debugger med en åben byte blok redigeringsdialog
.
Se også
- Sammenligning af funktionaliteten af forskellige hex-editorer (da)
- winhex
- DMDE
Noter
- ↑ Det vil sige, ændringer foretaget på venstre side afspejles straks på højre side og omvendt.
- ↑ Rediger f.eks. 8 bytes som et flydende tal med dobbelt præcision .