欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

挂起方式创建进程

发布时间:2025/3/21 编程问答 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 挂起方式创建进程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

创建进程除了用 CREATE_NEW_CONSOLE,还可以用挂起的方式创建,CREATE_SUSPENDED

// TestCreateSuspended.cpp : Defines the entry point for the console application. // 挂起方式创建进程#include "stdafx.h" #include <WINDOWS.H>int main(int argc, char* argv[]) {// 挂起方式创建进程STARTUPINFO si = {0};si.cb = sizeof(si);PROCESS_INFORMATION pi;char szPath[MAX_PATH] = "c:\\notepad.exe";CreateProcess(NULL, szPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi);// 获取线程上下文CONTEXT context;context.ContextFlags = CONTEXT_FULL;GetThreadContext(pi.hThread, &context);// 获取入口点DWORD dwEntryPoint = context.Eax;printf("入口点: %x\n", dwEntryPoint);// 获取ImageBasechar *baseAddress = (char *)context.Ebx + 8;char szBuffer[256] = {0};ReadProcessMemory(pi.hProcess, baseAddress, szBuffer, 4, NULL);// 恢复线程ResumeThread(pi.hThread);getchar();return 0; }

运行结果

总结

以上是生活随笔为你收集整理的挂起方式创建进程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。