Heim  >  Artikel  >  Backend-Entwicklung  >  Kann Golang dekompiliert werden?

Kann Golang dekompiliert werden?

青灯夜游
青灯夜游Original
2022-12-28 11:14:146062Durchsuche

golang kann nicht dekompiliert werden. Grund: Golang ist eine kompilierte statische Sprache. Binärdateien sind Dateien, die in ASCII und erweiterten ASCII-Zeichen geschrieben sind. Diese Dateien enthalten spezielle Formate und Computercodes. Kann nicht dekompiliert werden.

Kann Golang dekompiliert werden?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

golang unterstützt keine Dekompilierung.

Grund:

Go-Sprache ist eine kompilierte statische Sprache. Bevor ein Go-Sprachprogramm ausgeführt wird, muss es daher in eine binäre ausführbare Datei kompiliert werden.

Golang generiert nach der Kompilierung Binärdateien. Binärdateien sind Dateien, die in ASCII und erweiterten ASCII-Zeichen geschriebene Daten oder Programmanweisungen enthalten. Diese Dateien enthalten spezielle Formate und Computercodes und können daher nicht dekompiliert werden.

Vorteile von Binärdateien

Warum Binärdateien verwenden? Es gibt wahrscheinlich drei Gründe:

Der erste ist, dass Binärdateien Platz sparen und es beim Speichern von Zeichendaten keinen Unterschied zwischen den beiden gibt. Beim Speichern von Zahlen, insbesondere reellen Zahlen, ist Binär jedoch platzsparender. Wenn Sie beispielsweise Real*4-Daten speichern: 3.1415927, benötigt eine Textdatei 9 Bytes und speichert jeweils: 3. 1 4 1 5 9 2 7 diese 9 Der ASCII-Wert, während Binärdateien nur 4 Bytes benötigen (DB 0F 49 40) Bei der Speicherung als Textdatei ist ein Konvertierungsprozess erforderlich. Wenn die Datenmenge groß ist, besteht ein erheblicher Geschwindigkeitsunterschied zwischen beiden.

 Drittens führt die Verwendung des Binärspeichers bei einigen relativ präzisen Daten nicht zum Verlust gültiger Bits.

So werden Binärdateien gespeichert

Listen Sie eine Binärdatei wie folgt auf:

00000000h:0F 01 00 00 0F 03 00 00 12 53 21 45 58 62 35 34; .........S!EXb54
00000010h:41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50; ABCDEFGHIGKLMNOP

Die hier aufgeführten Dinge sind das, was Sie in UltraEdit (UE) sehen. Tatsächlich ist nur der rote Teil der Dateiinhalt. Das Vorstehende ist die von UE hinzugefügte Zeilennummer. Was folgt, ist eine Referenz, die UE als Zeichen zu interpretieren versucht.

 Diese Datei ist insgesamt 32 Bytes lang. Wird als zwei Spalten mit jeweils 16 Byte angezeigt. Tatsächlich ist dies nur eine Anzeige von UE. Echte Dateien haben keine separaten Zeilen. Wenn wir nur den Inhalt dieser Datei kennen und keine Erklärung haben, können wir keine nützlichen Informationen sehen.

 Ich werde unten eine Erklärung angeben: Wir glauben, dass die ersten 4 Bytes ganzzahlige 4-Byte-Daten sind (0F 01 00 00 hexadezimal: 10Fh dezimal: 271). Die 4 Bytes nach diesen 4 Bytes sind weitere 4 Bytes ganzzahliger Daten (0F 03 00 00 hexadezimal: 30Fh dezimal: 783). Die folgenden 4 Bytes (12 53 21 45) stellen reale 4-Byte-Daten dar: 2.5811919E+3. Die nächsten 4 Bytes (58 62 35 34) stellen weitere 4 Bytes Ausführungsdaten dar: 1.6892716E-7. Und nur die letzten 16 Bytes (41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50) gelten als 16-Byte-Zeichenfolge (ABCDEFGHIGKLMNOP)

Tatsächlich speichern Binärdateien nur Daten Zum Beispiel ist das 9. Byte bis zum 16. Byte oben (12 53 21 45 58 62 35 34) nicht angegeben. Wir dachten nur, es handele sich um zwei 4-Byte-Realtypen, aber tatsächlich kann es auch als 8-Byte-Zeichentyp betrachtet werden (S!EXb54). Die folgende 16-Byte-Zeichenfolge (ABCDEFGHIGKLMNOP) kann auch als zwei 8-Byte-Ganzzahlen oder vier 4-Byte-Ganzzahlen oder sogar zwei 8-Byte-Realtypen und vier 4-Byte-Realtypen usw. betrachtet werden.

Daher können wir bei einer Binärdatei ihre Bedeutung nicht genau kennen. Wir benötigen eine Beschreibung ihrer Datenspeichermethode. Diese Beschreibung sagt uns, welche Art von Daten von welchem ​​Byte zu welchem ​​Byte gehören und welche Bedeutung die gespeicherten Daten haben. Ansonsten können wir nur raten oder hilflos sein.

【Verwandte Empfehlungen:

Go-Video-Tutorial

, Programmierunterricht

Das obige ist der detaillierte Inhalt vonKann Golang dekompiliert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Womit ist Golang ähnlich?Nächster Artikel:Womit ist Golang ähnlich?