Обязательно ли использовать официальный SDK для защиты исполняемых файлов, скомпилированных на Go, с помощью VMP?

Можно ли в исходном коде программ на Go использовать парные метки шифрования так же, как это делается для программ на C++ или Delphi? Сможет ли VMProtect автоматически распознать эти метки при загрузке исполняемого файла?

Или обязательно нужно использовать решение на основе SDK от VMProtect, то есть обращаться к файлам vmprotect.go и VMProtectSDK.h из каталога include\go?

Все что можно было портировать из SDK уже есть в vmprotect.go Все остальное (в том числе маркеры кода через вызовы VMProtectBegin*) из-за особенностей компилятора Go работать не будут, поэтому необходимые функции нужно добавлять по имени через GUI.

//go:linkname Function VMProtectFunction
func Function()

//go:linkname FunctionVirtualization VMProtectFunctionVirtualization
func FunctionVirtualization()

//go:linkname FunctionMutation VMProtectFunctionMutation
func FunctionMutation()

//go:linkname FunctionUltra VMProtectFunctionUltra
func FunctionUltra()

//go:linkname FunctionVirtualizationLockByKey VMProtectFunctionVirtualizationLockByKey
func FunctionVirtualizationLockByKey()

//go:linkname FunctionUltraLockByKey VMProtectFunctionUltraLockByKey
func FunctionUltraLockByKey()

vmprotect.go (3,3 КБ)

Example:

package main

import (
    "fmt"
    "vmprotect"
)

func main() {
    vmprotect.FunctionVirtualization()

    fmt.Println("Hello, World!")
}