example
AlexJujushvili opened this issue · comments
AlexJujushvili commented
Please create a complete (step-by-step) example
aorangel commented
Hi, @AlexJujushvili . Here is an example for you. Pls make sure I am not very experienced with golang.
package main
import (
"embed"
"github.com/amenzhinsky/go-memexec"
"github.com/sirupsen/logrus"
"os"
)
// file should exists on file system
//go:embed ff.exe
var fsEmbed embed.FS
func main() {
_ = fun()
}
func fun() error {
filename := "ff.exe"
data, err := fsEmbed.ReadFile(filename)
if err != nil {
logrus.Errorf("failed to read file: %v", err)
return err
}
logrus.Debugf("got data, len: %v", len(data))
exeFile, err := memexec.New(data)
if err != nil {
return err
}
defer exeFile.Close()
cmd := exeFile.Command(os.Args...)
out, err := cmd.Output()
if err != nil {
logrus.Errorf("failed to exec file: %v", err)
return err
}
logrus.Debug(out)
return nil
}
// set GOOS=windows
// set GOARCH=386
// go build -ldflags "-s -w -H=windowsgui" cmd.go
// upx.exe cmd.exe
Aliaksandr Mianzhynski commented
Can be found in README now.