【笔记】进程的创建
当系统启动后,创建了桌面进程explorer.exe,当运行一个exe时,就是explorer.exe的子进程。1创建进程,调用 create process创建进程,在高2g有进程的名字,计数器,空的句柄表。当调用 create process时,
会在这张表上写下它的内核地址,及所对应的句柄。
2分配4g的虚拟空间,peloader
3,create thread, context.eip = imagebase+oep,程序跑起来。
VOID TestCreateProcess()
{
STARTUPINFO si = {0};
PROCESS_INFORMATION pi;
si.cb = sizeof(si);
TCHAR szCmdline[] = TEXT(" http://www.52pojie.cn");
BOOL res = CreateProcess(
TEXT("c://program files//internet explorer//iexplore.exe"),
szCmdline,
NULL,
NULL,
FALSE, //不允许inherit parent
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si, //默认形态
&pi //process_information结构,handle and id
);
printf("%d %d %d %d \n",pi.hProcess,pi.dwProcessId,pi.hThread,pi.dwThreadId);
}
int main(int argc, char* argv[])
{
TestCreateProcess();
getchar();
return 0;
}
页:
[1]