ForHosting KIT · Entwickler-Tools

LEB128-Varint-Dekodierer

Dieser Dekodierer wandelt eine vorzeichenlose LEB128-Bytefolge variabler Länge in ihren exakten Ganzzahlwert um.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Fügen Sie Hexadezimalbytes wie E5 8E 26 ein oder wählen Sie die Dezimalschreibweise, wenn Ihre Quelle gewöhnliche Bytezahlen verwendet. Das Werkzeug verfolgt das Fortsetzungsbit jedes Bytes, prüft den korrekten Abschluss und gibt neben dem Dezimalergebnis normalisierte Bytes zurück. Es eignet sich zur Untersuchung von WebAssembly-Binärdateien, Protocol-Buffers-Nutzdaten, DWARF-Debuginformationen und weiteren kompakten Formaten.

Wie vorzeichenloses LEB128 eine Ganzzahl speichert

LEB128 stellt Ganzzahlen zur Basis 128 in Little-Endian-Reihenfolge dar. Jedes Byte trägt sieben Nutzbits bei. Das höchstwertige Bit dient als Fortsetzungskennzeichen: Ist es eins, gehört ein weiteres Byte zur selben Ganzzahl; ist es null, endet der Wert. Da die niedrigstwertige Gruppe zuerst kommt, belegen die Nutzdaten des ersten Bytes die Bitpositionen null bis sechs, die des nächsten Bytes die Positionen sieben bis dreizehn und so weiter. E5 8E 26 enthält beispielsweise nach dem Entfernen der Kennzeichen die Gruppen 65, 0E und 26. Werden sie in aufeinanderfolgenden Abständen von sieben Bit kombiniert, entsteht 624485. Kleine Werte benötigen dadurch weniger Bytes, größere wachsen ohne überflüssige führende Nullen. Diese Fähigkeit dekodiert ausschließlich die vorzeichenlose Form. Sie nimmt keine Vorzeichenerweiterung vor und deutet das oberste Nutzbit niemals als negatives Vorzeichen. Das Ergebnis erscheint als Dezimalzeichenfolge, damit auch Werte oberhalb des sicheren Ganzzahlbereichs von JavaScript exakt erhalten bleiben.

Eine Bytefolge eingeben und validieren

Fügen Sie genau eine vollständig kodierte Ganzzahl in das Textfeld ein. Im voreingestellten Hexadezimalmodus schreiben Sie ein- oder zweistellige Byte-Token, getrennt durch Leerzeichen, Kommas, Doppelpunkte oder Bindestriche; E5 8E 26 und 0xE5,0x8E,0x26 sind gleichwertig. Das Präfix 0x kennzeichnet stets Hexadezimalnotation. Wählen Sie den Dezimalmodus, wenn ein Analysewerkzeug Bytes als Zahlen von 0 bis 255 anzeigt, etwa 229 142 38. Der Dekodierer weist fehlerhafte Token, Werte außerhalb des Bytebereichs, leere Eingaben und Folgen über dem veröffentlichten Grenzwert von 128 Bytes zurück. Auch die Struktur wird geprüft. Jedes Byte mit gesetztem obersten Bit kündigt ein weiteres Byte an; eine mit 80 endende Folge ist deshalb unvollständig. Sobald ein Byte mit gelöschtem obersten Bit erscheint, ist der Wert beendet. Nachfolgende Token werden abgelehnt, statt unbemerkt ignoriert oder als weitere Ganzzahl behandelt zu werden. So werden Eingabefehler sichtbar und scheinbar plausible Ergebnisse aus abgeschnittenen oder verketteten Folgen vermieden.

Das Ergebnis bei der Binäranalyse verwenden

Die Antwort umfasst den exakten Dezimalwert, die Anzahl der verbrauchten Bytes, das ausgewertete Byte-Array und eine normalisierte großgeschriebene Hexadezimaldarstellung. Damit lässt sich das Resultat leicht mit einem Hexdump vergleichen oder in eine Testvorgabe übernehmen. WebAssembly verwendet vorzeichenloses LEB128 für zahlreiche Indizes, Längen und unmittelbare Ganzzahloperanden. DWARF nutzt es für kompakte Attribute, während Protocol Buffers ein eng verwandtes Varint-Layout zur Basis 128 einsetzt. Beginnen Sie jeweils an dem vom umgebenden Format bestimmten Byte, sammeln Sie alle Bytes bis zum ersten mit gelöschtem Fortsetzungsbit und dekodieren Sie nur diesen Abschnitt. Wirkt der Wert falsch, prüfen Sie den Startversatz und ob das Feld tatsächlich vorzeichenlos ist. Vorzeichenbehaftetes LEB128 und die Zigzag-Kodierung von Protocol Buffers verlangen eine zusätzliche Interpretation, die dieses Werkzeug bewusst nicht vornimmt. Für automatisierte Prüfungen rufen Sie dieselbe deterministische Operation per API für $0.002 auf; gleiche Eingaben liefern stets gleiche Ausgaben.

Eine WebAssembly-Binärdatei untersuchen

Dekodieren Sie einen Index, eine Abschnittslänge oder einen vorzeichenlosen unmittelbaren Wert aus einem WebAssembly-Hexdump.

Ein Protocol-Buffers-Varint analysieren

Ermitteln Sie die rohe vorzeichenlose Ganzzahl eines Basis-128-Varints vor der feldspezifischen Auslegung.

DWARF-Debuginformationen lesen

Wandeln Sie ein ULEB128-Attribut oder einen Operanden in einen exakten Dezimalwert um und prüfen Sie das Abschlussbyte.

Was kostet der Dekodierer?

Jeder API-Aufruf kostet $0.002. Die Browserversion läuft lokal und kann kostenlos verwendet werden.

Dekodiert das Werkzeug vorzeichenbehaftete LEB128-Werte?

Nein. Es verarbeitet nur vorzeichenloses LEB128 und führt keine Vorzeichenerweiterung aus.

Warum wird der Wert als Zeichenfolge ausgegeben?

Eine Dezimalzeichenfolge bewahrt Ganzzahlen oberhalb des sicheren exakten Zahlenbereichs von JavaScript.

Kann ich Bytes mit dem Präfix 0x einfügen?

Ja. Das Präfix 0x wählt für das jeweilige Byte immer die Hexadezimalnotation.

Warum verursacht ein letztes Byte wie 80 einen Fehler?

Sein Fortsetzungsbit ist gesetzt; die Kodierung kündigt daher ein weiteres, nicht vorhandenes Byte an.

Ist ein Protocol-Buffers-Varint immer der endgültige Wert?

Nicht zwingend. Vorzeichenfelder können nach dem rohen Varint noch Zigzag- oder Zweierkomplement-Auslegung anwenden.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev/leb128-decode

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/leb128-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"E5 8E 26"}'
{
  "text": "E5 8E 26"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.leb128_decode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_items128
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →