如何使用 C++ 从 RAM 运行可执行文件?
可执行文件位于 RAM 中,并且我知道地址,如何从我的程序中调用该程序?
这类事情通常来自世界的黑暗角落。 ;-)
结合像metasploit这样的工具,用内存创建进程会很棒,因此一些人尝试重新实现CreateProcess()中发生的所有内容。一段时间后,他们发现它太复杂了(参见this PDF http://pentest.cryptocity.net/files/exploitation/winasm-1.0.1.pdfsite 12f)为了让它发挥作用,他们试图找到另一个解决方案,这里是:
他们使用通用程序(例如 notepad.exe)调用普通的 CreateProcess(),但他们以 ThreadSuspished 启动它。
然后他们将一个新线程注入到这个进程中,该线程将从内存中填满。然后他们告诉这个线程运行,这样他们就得到了一个从内存中填充的新进程。
所以这只是大局,做这些事情是一团糟(通常不是正确的方法)。如果您真的对这部分感兴趣,那么您就有一个可以搜索的想法。
顺便说一句,不要认为您可以在 C# 中做到这一点。这通常是用 C/C++ 甚至汇编程序完成的......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)