从 C# 中正在运行的进程调用函数


  1. 我有一个程序在计算机上运行C++,无法更改 代码(但我可以看到源代码(。
  2. 现在,我想使用我的 C# 项目从这个正在运行的程序/进程中调用一些方法。
  3. C++程序在运行时更改其对象。所以导入 dll 是 在这种情况下没有帮助。

最佳实践是什么?是否可以获取该进程(通过Process.GetProcessesByName(并以某种方式在我的c#项目中调用它的函数?

如果函数有 1 个参数,则可以通过使用 CreateRemoteThread(( 并在 lpParameter 参数中传递单个参数来调用该函数。 在 lpStartAddress 中传递函数的地址。

如果函数接受多个参数,则无法使用 CreateRemoteThread(( 在外部调用它。

要获取函数的地址,您可以使用需要精确调用的 GetProcAddress((,但这仅在导出函数时才有效。

如果未导出,则可以对通过逆向工程找到的地址进行硬编码。

相关内容

  • 没有找到相关文章

最新更新