逆コンパイルを回避するには、コンパイルされた 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 サイトの他の関連記事を参照してください。