DevToys Web Pro iconDevToys Web ProBlogi
Arvostele meidät:
Kokeile selainlaajennusta:

Vaihda endianness

8 bytes (2 words)
Sanakoko

Syöte (heksa)

  • Vaihdettu tuloste

  • Tekniset tiedot

    Miten tavujärjestyksen vaihto -työkalu toimii

    Mitä työkalu tekee

    Swap Endianness -työkalu kääntää heksasyötteen tavujärjestyksen määritettävän sanakoon (2, 4 tai 8 tavua) sisällä. Se on tarkoitettu muuntamiseen little-endian- ja big-endian-esitystapojen välillä kiinteäleveyksisille kokonaisluvuille, jotka on tallennettu heksana. Tätä tarvitaan usein binääritiedostomuotojen, verkkoprotokollien tai matalan tason debuggaustyökalujen kanssa, jotka ovat eri mieltä tavujärjestyksestä.

    Yleiset kehittäjien käyttötapaukset

    Reverse engineerit yhdenmukaistavat x86- tai ARM- (little-endian) sekä PowerPC- tai MIPS- (historiallisesti big-endian) heksadumppien esitystavan, jotta arvoja voidaan verrata arkkitehtuurien välillä. Verkkoinsinöörit muuntavat isäntätavujärjestyksen kokonaisluvut verkon tavujärjestykseen (aina big-endian) ennen kuin upottavat ne pakettikaappauksiin. Sulautettujen järjestelmien kehittäjät debuggaavat flashiin tallennettuja rakenteita kohdistamalla tavut uudelleen analyysityökalujensa odottamaan muotoon.

    Tietomuodot, tyypit tai variantit

    Syöte hyväksyy heksan `0x`-etuliitteellä tai ilman sekä mielivaltaisen välilyönnin. Tuloste esitetään selkeyden vuoksi välilyönnein eroteltuina pienaakkosina heksatavuina. Sanakoot 2, 4 ja 8 tavua vastaavat 16-, 32- ja 64-bittisiä kokonaislukuja. Useat sanat vaihdetaan toisistaan riippumatta: 4 tavun sanakoolla 12345678 9ABCDEF0 muuttuu muotoon 78 56 34 12 ja sen jälkeen F0 DE BC 9A.

    Yleiset sudenkuopat ja reunatapaukset

    Syötteen on oltava kokonainen määrä tavuja (parillinen määrä heksanumeroita) ja kokonainen määrä sanoja (jaollinen määritetyllä sanakoolla tavuina). Yhteensopimattomat koot palauttavat virheen sen sijaan, että dataa katkaistaisiin hiljaa. Verkon tavujärjestys on aina big-endian, kun taas x86 / ARM käyttävät little-endiania — vaihda tavut, kun luet tai kirjoitat wire-format-kokonaislukuja.

    Milloin käyttää tätä työkalua vs. koodia

    Käytä selainpohjaista työkalua kertaluonteisiin muunnoksiin binääridumppien lukemisen tai debuggaamisen aikana. Koodissa suosi `DataView`-rakennetta ja eksplisiittisiä `littleEndian`-lippuja JavaScriptissä, `byteorder='little'|'big'` Pythonin `int.from_bytes` -kutsussa, `binary.LittleEndian.Uint32` Go:ssa tai `ntohl` / `htonl` C:ssä — nämä ilmaisevat tarkoituksen selkeämmin ja välttävät heksan kautta round-tripin.