1

我喜欢将 DLL 注入进程,因为我可以更改程序的某些值。

dll 的唯一缺点是它们对便携性不太友好,并且使它们具有便携性会消耗大量代码。

我只是想知道是否可以注入存储在资源中的应用程序(到进程),然后再执行它?

如果是这样,哪些代码部分可能与 dll 的注入不同?

4

1 回答 1

0

您的问题未标记为“Windows”,但从措辞来看,我仍然假设您指的是 Windows。

给定必要的访问权限,可以将可执行文件注入另一个进程,forkcygwin 中的实现是概念验证。Windows 不支持任何类似的东西fork,至少不公开在公共 API 中。Cygwin 通过创建一个新进程并将自己的进程注入另一个进程(包括所有数据)来实现它。而是从资源中读取并注入它几乎是同一件事。

差异(和困难)之一可能是图像库,它(通常)在 Win32 下总是相同的。对于 DLL,重新定位是很常见的事情,而对于可执行文件则不是。另一方面,如果您想在已经存在的进程代码之外注入代码,那么您想要的地址可能不是免费的。

于 2012-07-01T17:29:48.190 回答