直接从C#调用未导出的本机wmain函数

时间:2017-01-17 20:12:03

标签: c# pinvoke main dllexport

是否可以在Windows上直接从其他进程调用本机exe主入口点(wmain),而不将wmain标记为dllexport?

背景 我们的.NET应用程序需要调用第三方本机.exe然后加载并调用我们的本机.dll。我们需要将大量数据泵入进程(通过本机.dll),因此我正在研究直接内存访问的可能性(与在两个进程之间设置共享内存相比 - .net和native - 以及复制来回的记忆)。 我试图使用P / Invoke wmain,但是因为它没有dllexported而无法使用EntryPointNotFoundException(我无法在dumpbin导出中看到它)。虽然它不是dllexported。它仍然需要以某种方式导出以供操作系统调用 - 所以我能以某种方式使用它来直接调用main吗?

EDIT1: 我在这里找到了一个简短的PE加载器代码:http://www.cultdeadcow.com/tools/peload/peloader.c并且通过一些实验看起来它可能是可用的。然而,这个gots非常复杂和脆弱(操作系统加载PE的无证件行为)。所以我已经在研究实现目标的其他方法(包括简单的IPC,远程线程注入等)。

0 个答案:

没有答案