假设进程 1 是主进程,进程 2 是目标进程(顺便说一下,我无法编辑它),我希望能够从进程 1 中的进程 2 调用函数,任何人都有好的方法吗?我正在考虑注入一个带有调用该函数的导出的 dll 并在外部使用 GetProcAddress...这可能吗?这是最好的方法吗?
谢谢你的时间。
您的问题的标题和正文提出了两个略有不同的问题。
让一个可执行文件调用另一个可执行文件中包含的函数非常容易,至少在相关函数的名称已导出的情况下是如此。您可以LoadLibrary像加载 DLL 一样加载可执行文件,然后使用GetProcAddress获取要调用的函数的地址,并正常调用它。但请记住,如果在其自己的可执行文件中调用该函数之前没有进行其他初始化,该函数可能无法正常工作。
在另一个进程的上下文中(不仅仅是在另一个可执行文件中)调用函数要花费更多的工作。基本思想是有一个函数可以进行调用,并(例如)将结果写入与进行调用的进程共享的某些内存中。然后,您可以使用CreateRemoteThread该函数在包含您需要调用的函数的进程的上下文中执行。
如果目标进程已编写为支持它,则还有其他方法(例如 COM)旨在更干净地支持此类功能。如果有的话,它们通常是更可取的。
| 归档时间: | 
 | 
| 查看次数: | 1885 次 | 
| 最近记录: |