C++ C++;-DLL注入和调用函数

C++ C++;-DLL注入和调用函数,c++,dll,C++,Dll,很久以来我一直在为我的问题寻找答案 我有一个游戏DLL和一个程序 我的DLL我有一个函数,可以改变游戏中的一些东西。(如果DLL被注入到游戏中)。这个程序是我的注入器 我的问题是,在注入之后,如何能够手动调用DLL中的函数 现在,当连接到游戏时调用此函数,但是如何从注入器调用此函数?您必须将dll中的符号(函数)加载到程序中 该符号将是一个可以调用的函数指针。操作系统之间存在显著差异,因此我会搜索“从dll调用函数”以获取操作系统的示例。是的,您可以在正在运行的进程上创建远程线程,并在该线程上找

很久以来我一直在为我的问题寻找答案

我有一个游戏DLL和一个程序

我的DLL我有一个函数,可以改变游戏中的一些东西。(如果DLL被注入到游戏中)。这个程序是我的注入器

我的问题是,在注入之后,如何能够手动调用DLL中的函数


现在,当连接到游戏时调用此函数,但是如何从注入器调用此函数?

您必须将dll中的符号(函数)加载到程序中


该符号将是一个可以调用的函数指针。操作系统之间存在显著差异,因此我会搜索“从dll调用函数”以获取操作系统的示例。

是的,您可以在正在运行的进程上创建远程线程,并在该线程上找到您提到的函数。

为了调用该函数,您需要在目标进程中执行的代码。这就是游戏,但您希望从注入器调用函数,这是一个不同的过程。您在目标进程中已经有了代码,即您注入的DLL。因此,获取注入的DLL来调用函数。实现这一目标的一些方法:

  • 在目标进程中创建另一个远程线程,该线程调用DLL中定义的函数。然后,在目标流程的上下文中,它可以做任何它喜欢做的事情
  • 使用一些IPC机制(例如命名管道、套接字等)要求注入的DLL执行操作

  • 当然你不需要所有的大写字母。我很久以前做过类似的事情,但我记不起细节了。你不能在另一个进程中创建一个新线程并让该线程调用函数吗?+看看这个:“去吧”——不,不是真的。您最好指定要作为线程入口点运行的函数,因为目标中没有为您调用该函数的现有代码。您能给我举个例子吗?要在DLL中从注入器注入的程序中使用2个参数(int,char*)运行函数?@user2652995:您不能。只能远程调用有效线程过程的函数。但是,该线程过程可以在其注入的DLL中调用其他函数。@BenVoigt这正是我在回答中试图说的。函数指针在注入程序的地址空间中无效,调用函数指针将在注入程序内部而不是在目标中运行。请给出示例代码,理论上我什么都不懂;对不起,不行。写代码是你的工作,不是我的。您已经编写了注入DLL的代码,因此您必须知道如何做到这一点。还是你把它都剪贴了?