ホームページ  >  記事  >  バックエンド開発  >  逆コンパイルを防ぐために、コンパイルされた Go コードからデバッグ情報を削除するにはどうすればよいですか?

逆コンパイルを防ぐために、コンパイルされた Go コードからデバッグ情報を削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 15:31:02779ブラウズ

How can I remove debugging information from compiled Go code to prevent decompilation?

Go でのデバッグ情報の削除

逆コンパイルを回避するには、コンパイルされた Go コードからデバッグ情報を削除することが不可欠です。 Go コンパイラー (gc) のデフォルトの動作にはデバッグ情報が含まれていますが、それを削除する方法もあります。

-ldflags を使用した解決策:

-ldflags フラグを使用します。コンパイル中:

go build -ldflags="-s -w"

このフラグは、両方のシンボル テーブル (-s) を削除するリンカー フラグを設定します。およびデバッグ情報 (-w)。

-trimpath を使用した解決策:

さらに、Go 1.13 以降では、-trimpath を使用してファイルの長さを短縮できます。実行可能ファイルに保存されているパス。これにより、逆コンパイルの試行をさらに防ぐことができます。

go build -ldflags="-s -w -trimpath=/path/to/trim"

注:

gccgo の使用は、適切に機能するにはデバッグ情報が必要であるため、実行可能な解決策ではありません。 -g フラグを使用してデバッグ情報を削除すると、実行可能ファイルが壊れます。したがって、推奨されるメソッドは -ldflags と -trimpath です。

以上が逆コンパイルを防ぐために、コンパイルされた Go コードからデバッグ情報を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。