디컴파일을 방지하려면 컴파일된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!