下你所需,载你所想!
汇集开发技术源码资料

在任意内存中运行EXE和DLL代码

:15.587KB :1 :2019-11-14 19:44:43

部分简介

windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动。

只要运行时能将exe的内容正确拼接到一块内存中,就可以直接从内存中启动。

先创建一个傀儡进程(挂起状态),然后把要加载的EXE拷入内存,整理相关。卸载宿主进程的相关模块,用当前需要加载的exe模块替换,并且整理相关信息。达到用傀儡进程身份做事的目的,上面的1方式是用本地进程身份做事,两者都可以对代码进行加密。具体使用场景看具体需求。
pDllData = DLL字节集
hModule = LoadMemLibrary (取变量数据地址 (pDllData))
fnFunc = GetMemProcAddress (hModule, DLL命令名)
调用子程序 (fnFunc, , 返回值, 参数1, 参数2, 参数3, 参数4, 参数5, 参数6, 参数7, 参数8, 参数9, 参数10, 参数11, 参数12, 参数13, 参数14, 参数15)
FreeMemLibrary (hModule)

类似内存加载dll一样,直接把EXE拷贝到内存里,然后对齐整理相关,再在当前进程里加载调用被加载exe的相关主函数,这个要注意的问题就是被加载的exe退出的时候,当前主进程会被退出,这个很容易理解,如果有需求可以通过参数控制解决这个问题,同时这个姿势也要注意32位64位问题,和平时的注入一样,要一一对应。

在任意内存中运行EXE和DLL代码

热门推荐

相关文章