【发布时间】:2012-07-02 07:01:21
【问题描述】:
我喜欢将 DLL 注入进程,因为我可以更改程序的某些值。
dll 唯一的缺点是它们对便携性不太友好,并且使它们具有便携性会消耗大量代码。
我只是想知道是否可以将存储在资源中的应用程序(到进程)注入然后执行它?
如果是这样,哪些代码部分可能与 dll 的注入不同?
【问题讨论】:
标签: c++ resources execute inject
我喜欢将 DLL 注入进程,因为我可以更改程序的某些值。
dll 唯一的缺点是它们对便携性不太友好,并且使它们具有便携性会消耗大量代码。
我只是想知道是否可以将存储在资源中的应用程序(到进程)注入然后执行它?
如果是这样,哪些代码部分可能与 dll 的注入不同?
【问题讨论】:
标签: c++ resources execute inject
您的问题未标记为“Windows”,但从措辞来看,我仍然假设您指的是 Windows。
鉴于必要的访问权限,有可能将可执行文件注入另一个进程,cygwin 中的fork 实现是概念验证。 Windows 不支持fork 之类的东西,至少不公开在公共 API 中。 Cygwin 通过创建一个新进程并将自己的进程注入另一个进程(包括所有数据)来实现它。而是从资源中读取并注入它几乎是同一件事。
其中一个差异(和困难)可能是图像库,在 Win32 下(通常)总是相同的。对于 DLL,重新定位是很常见的事情,而对于可执行文件则不是。另一方面,如果你想在已经存在的进程代码之外注入代码,那么你想要的地址可能不是空闲的。
【讨论】: