gpt4 book ai didi

C - WinAPI 的 ProcessCreation 问题

转载 作者:行者123 更新时间:2023-11-30 18:13:34 25 4
gpt4 key购买 nike

我正在尝试将文件打开到文件缓冲区中,然后用它创建一个新进程。我试图使用 ASM 转到文件的开头,但遗憾的是由于 Windows,它实际上不会执行任何操作,因为所有信息都位于 Windows 可执行文件的顶部。所以我尝试创建一个新进程,但我不太擅长 Windows API。谁能告诉我我做错了什么?

#include <stdio.h>
#include <windows.h>
#include <WinBase.h>

char *file0_buffer;
int file0_size;

STARTUPINFO si;
PROCESS_INFORMATION pi;


int main(int argc, char **argv){

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

FILE *file0 = fopen("./input.exe", "rb");
if(file0 == NULL){printf("fopen file0 error"); getchar(); return 0;}

fseek(file0, 0, SEEK_END);
file0_size = ftell(file0);
rewind(file0);

file0_buffer = (char*)malloc(file0_size);
fread(file0_buffer, sizeof(char), file0_size, file0);
fclose(file0);

CreateProcess(NULL, NULL, NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE, &file0_buffer, NULL, &si, &pi);

getchar(); return 0;
}

最佳答案

CreateProcess的第7个参数用于指定新进程中的环境变量。

请参阅:CreateProcess from memory buffer

关于C - WinAPI 的 ProcessCreation 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com