2012-07-01 33 views
1

我喜歡將DLL注入進程,因爲我可以更改程序的某些值。是否可以從外部進程注入和執行應用程序?

dll的唯一缺點是它們不是非常便於攜帶,並且使它們便攜式消耗大量代碼。

我只是想知道是否可以注入存儲在資源中的應用程序(對一個進程),然後執行它?

如果是這樣,哪些代碼部分可能會不同於dll的注入?

回答

0

您的問題沒有標記爲「Windows」,但從措辭我仍然假定您參考Windows。

考慮到必要的訪問權限,有可能注入的可執行文件到另一個進程,在Cygwin中的fork實現是一個概念證明。 Windows不支持類似fork的東西,至少在公開API中不公開。 Cygwin通過創建一個新進程並將其自己的進程注入另一個進程(包括所有數據)來實現它。而是從資源中讀取,然後注入,這幾乎是一回事。

其中一個差異(和困難)可能是圖像庫,它在Win32下通常是相同的。對於一個DLL來說,它是一個通常被重新組合的東西,而不是一個可執行的東西。另一方面,如果您想將代碼添加到已存在的進程代碼中,則您所需的地址可能不是免費的。

相關問題