: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位问题,和平时的注入一样,要一一对应。
02-17会员管理插件源码
02-16动态创建菜单与响应事件源码,菜单编辑器
02-09动态载入DLL
02-09画板快捷启动3.2源码修改版
02-09王者荣耀战力小程序源码分享
02-09简单的指定颜色抠图源码
02-05WinLicense授权SDK源码
02-05文本逐字分割源码及优化历程
09-07C++的string的实现源码分析