Golang从内存中的二进制数据执行子进程



我知道可以将可执行文件嵌入Golang可执行文件中并运行它们,或者使用Yaegi等项目从字符串中运行Golang代码,但是否可以运行作为变量存储的二进制文件,而不将其写入文件,作为子进程?二进制文件已经作为一个变量在内存中了,所以有可能只是以某种方式执行它吗?

如果我没有错的话,可执行内存和数据内存之间是有区别的,那么这会阻止这样做吗?

我提出这个问题的原因是,我正在编写一个RAT/有效载荷丢弃器,作为学习Go(lang(的项目,并希望使其尽可能模块化,包括无文件更新和二进制(也是无文件(有效载荷。

编辑:欢迎任何解决方案,但首选跨平台解决方案。

第二版:根据SO的回答,这在C++中是不可能/非常困难的。看起来,这样做的主要原因是动态链接库。由于Golang是静态链接的,这会更容易吗?

是的,请尝试这种方法。https://github.com/amenzhinsky/go-memexec

不,没有可移植的方法。

最新更新