簡體   English   中英

我如何從內存中執行可執行文件?

[英]How can i execute an executable from memory?

假設我在編譯期間將二進制文件包含在我的程序中,所以我將它保存在變量中,例如var myExec =[]byte{'s','o','m','e',' ','b','y','t','e','s'}所以我的問題是,是否有辦法在我的程序中執行這個二進制文件而不將其寫回光盤並調用exec或fork呢? 我正在Golang中編寫我的應用程序,所以我正在尋找的方法是使用Go或C(使用CGO)來完成它。

基本上,我正在尋找類似管道bash腳本到bash的東西,我不知道在哪里可以管道本機可執行文件的字節來運行它並將其寫回磁盤,然后讓os再次讀取它似乎很多額外的工作要做

在C和假設Linux中,您可以通過mprotect()系統調用來更改內存區域的保護,以便可以執行它(即:將數據區域轉換為代碼區域 )。 之后,您可以通過跳轉來執行該區域的內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM