Hex szerkesztő
A hexadecimális szerkesztő ( eng. hex-editor ), a hexadecimális szerkesztő olyan adatok szerkesztésére szolgáló alkalmazás , amelyben az adatok „ nyers formában ” – bájtok sorozataként – jelennek meg . Ez lehet egy önálló alkalmazás, vagy egy másik, összetettebb alkalmazás összetevője, például szétszedő , hibakereső , integrált fejlesztői környezet stb.
A bájtok értékének ábrázolására hexadecimális ( eng. hex adecimális ) számrendszert használnak , ami a szerkesztő címében is megjelenik. A hexadecimális számrendszer kiválasztását a következő tényezők indokolják:
Tényezők
- A 8 bites bájtokkal rendelkező platformok a legnépszerűbbek . Az ilyen platformokon egy bájt 2 8 = 256 értéket vehet fel a 0 és 255 közötti tartományban. A hexadecimálisan írt 256 10 egy kerek háromjegyű szám - 100 16 .
- Az a tény, hogy ez a szám háromjegyű, azt jelenti, hogy legfeljebb 2 számjegyre van szükség a 0 és 255 közötti számok megjelenítéséhez .
- Az a tény, hogy ez a szám kerek, azt jelenti, hogy az ábrázoláshoz minden lehetséges számkombinációt felhasználunk, és nem lesznek fel nem használtak (például decimális rendszer használata esetén a 256-tól 999-ig tartó számoknak megfelelő kombinációk használaton kívül maradnak ).
- A hexadecimális rendszer használatakor kiderül, hogy a jobb oldali számjegy a bájt alsó négy bitjének, a bejegyzés bal számjegye pedig a felső 4 bitnek felel meg. Ezért a bájthatáron elhelyezett 4 bites blokkon végzett műveletek leegyszerűsíthetők a megfelelő számjegyekkel végzett műveletekké.
- 16 - a számrendszer minimális alapja , amelyben két számjegy elegendő a rögzítéshez. A kisebb bázisú rendszerekben már három (vagy több) számjegyre lenne szükség, és csak a 256-os bázisú számrendszer biztosítaná az egy számjegybe való beilleszthetőséget, ami a gyakorlatban a nagy számjegyek miatt teljesen alkalmatlan.
Nyilvánvalóan például a 9 bites bájttal rendelkező platformokon háromjegyű
oktális számokat használnának, és egy hasonló funkcionalitású alkalmazást Oct szerkesztőnek neveznének.
A Hex szerkesztő által megjelenített és szerkesztést lehetővé tevő adatok a következők lehetnek:
Interfész
A hexadecimális szerkesztő mátrixként jeleníti meg az adatokat, amelynek minden cellája egy bájtnak felel meg , hexadecimális jelöléssel kétjegyű számként írva ( szükség esetén nullával ). A mátrixoszlopok száma kettő hatványa, leggyakrabban 16 vagy 8 oszlop, néha 4. A sorok száma a megjelenítendő/szerkesztendő bájtok számától függ. 16 oszlop esetén egy sor egy bekezdésnek felel meg .
Ezenkívül gyakran használnak további elemeket:
- A mátrix bal oldalán egy számvonalzó jelenik meg (az ábrán kék színnel): minden sor egy számnak felel meg, amely a sor első bájtjának címét / eltolását jelzi. A cím lépése megegyezik az oszlopok számával.
- A mátrix felett egy másik számsor jelenik meg (az ábrán zöld színnel látható): minden oszlop felett az ebben az oszlopban lévő bájt eltolása látható a megfelelő sor első bájtjához képest. A i-edik sornak megfelelő szám és a j-edik oszlopnak megfelelő szám összege a bájt címe/eltolása (i;j)az adott sor és a felvett oszlop metszéspontjában.
- A mátrixtól jobbra ugyanazok az adatok jeleníthetők meg, de eltérő értelmezésben. A leggyakrabban használt alternatív adatmegjelenítés ASCII -szövegként (az ábrán fukszia színnel látható ), a nem nyomtatható karaktereknek megfelelő bájtokkal pontként ( ·) jelenik meg. Sok szerkesztő lehetővé teszi tetszőleges kódolás kiválasztását a szöveges megjelenítési módhoz. Az adatokat szövegként megjelenítő változat az általános célú hexadecimális szerkesztőkben található. Azokban a szerkesztőkben, amelyek egy speciális program részét képezik, például egy hibakeresőben, általában más módok is elérhetők, mint például a szétszerelési lista, a címre vonatkozó tippek és más alkalmazás-specifikus módok.
A legtöbb szerkesztő lehetővé teszi a bal és a jobb oldali szerkesztést (ha elérhető). Ebben az esetben a végrehajtott változtatások koherensek [1] .
Az egyszerű szerkesztők csak a kiválasztott bájtok értékének egyenkénti módosítását teszik lehetővé. Speciális - bájtgyűjtemények szerkesztése tömör blokkként [2] , keresés sorozatok vagy sorozatminták alapján.
A lemezképek szerkesztésére szolgáló hexa szerkesztők tartalmazhatnak olyan funkciókat, amelyek a sérült fájlrendszer vagy véletlenül törölt fájlok
helyreállítására szolgálnak.
Használat
A hexadecimális szerkesztőket nem szöveges adatok szerkesztésére használják, ha a meglévő adatok szerkesztésére szolgáló speciális program nem elérhető, vagy annak használata indokolatlan vagy nem kívánatos. Például egy lefordított program módosítása újrafordítás nélkül. Tehát egy Hex szerkesztő segítségével megváltoztathatja a programkódba bekötött karakterláncok és numerikus konstansok értékeit, ha helyesen határozza meg a helyüket.
Ha a Hex szerkesztő rendelkezik disassembler funkcióival, vagy a célprogramot egy másik eszközzel már előre szétszedték, és az eltolás ismert, akkor közvetlenül a programkódon módosíthat, és megváltoztathatja a viselkedését. Ezt hibajavításra , hackelésre , csalásra , kézi módosításra használják .
Mivel a Hex szerkesztő meglehetősen sokoldalú eszköz, nem lehet leírni a használatához szükséges összes lehetőséget.
Galéria
-
A KDE-hez mellékelt ingyenes KHexEdit hexaszerkesztő (kdeutils)
-
Tekintse meg a PSPdebug -t a 32 bites Windowshoz tartozó segédprogramban .
-
Hexadecimális szerkesztő az OllyDbg hibakeresőben egy nyitott bájtblokk- szerkesztő
párbeszédpanelen .
Lásd még
- Különféle hexadecimális szerkesztők működésének összehasonlítása (en)
- winhex
- DMDE
Jegyzetek
- ↑ Vagyis a bal oldalon végrehajtott változtatások azonnal megjelennek a jobb oldalon, és fordítva.
- ↑ Például szerkesszen 8 bájtot dupla pontosságú lebegőpontos számként .