将程序 (.exe) 作为线程执行 - Window C++

Posted

技术标签:

【中文标题】将程序 (.exe) 作为线程执行 - Window C++【英文标题】:Execute an program (.exe) as a thread - Window C++ 【发布时间】:2016-06-29 13:10:56 【问题描述】:

我使用线程类来创建线程, 但我在将另一个程序作为线程运行时遇到了一些麻烦。 我想要一种通过路径创建和运行 .exe 线程的方法。 类似于 linux 中的 exec 系统调用,仅适用于线程和窗口。 (用新的线程图像替换当前线程图像)

另外,我如何与这个线程交流? (类似于在 linux 中使用管道和 dup)

提前致谢, 尤瓦尔。

【问题讨论】:

你不能那样做。您只能将可执行文件作为自己的进程执行,而不是作为另一个进程中的线程 不确定“当前线程图像”是什么意思。线程没有图像。进程可以。 【参考方案1】:

我想你可以通过编写/使用自制的 PE 加载程序并在填写 IAT、修复重定位并找到 TLS 解决方案后跳转到起始地址来做到这一点......

类似这样的东西:https://github.com/abhisek/Pe-Loader-Sample 应该可以帮到你。

【讨论】:

以上是关于将程序 (.exe) 作为线程执行 - Window C++的主要内容,如果未能解决你的问题,请参考以下文章

工具收藏

工具收藏

如何运行资源内的exe 以线程运行exe

线程可以作为另一个用户执行吗? (.NET 2.0/3.5)

如何创建线程安全的 c# exe 包装器

多线程和线程池