Um eine Dekompilierung zu vermeiden, ist es wichtig, Debugging-Informationen aus dem kompilierten Go-Code zu entfernen. Während das Standardverhalten des Go-Compilers (gc) Debugging-Informationen umfasst, gibt es Methoden, um diese zu entfernen.
Lösung mit -ldflags:
Verwenden Sie das Flag -ldflags während der Kompilierung:
go build -ldflags="-s -w"
Dieses Flag setzt die Linker-Flags, um sowohl die Symboltabelle (-s) als auch die Debugging-Informationen (-w) zu entfernen.
Lösung mit -trimpath:
Darüber hinaus können Sie mit Go 1.13 und höher -trimpath verwenden, um die Länge der in der ausführbaren Datei gespeicherten Dateipfade zu reduzieren. Dadurch können Dekompilierungsversuche weiter verhindert werden.
go build -ldflags="-s -w -trimpath=/path/to/trim"
Hinweis:
Die Verwendung von gccgo ist keine praktikable Lösung, da für die ordnungsgemäße Funktion Debugging-Informationen erforderlich sind. Das Entfernen von Debugging-Informationen mit dem Flag -g führt zu einer fehlerhaften ausführbaren Datei. Daher sind die empfohlenen Methoden -ldflags und -trimpath.
Das obige ist der detaillierte Inhalt vonWie kann ich Debugging-Informationen aus kompiliertem Go-Code entfernen, um eine Dekompilierung zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!