-
-
[求助]用OD附加一进程,列表里面竟然没有!但在任务管理器中可见!
-
发表于:
2008-4-16 16:59
5528
-
[求助]用OD附加一进程,列表里面竟然没有!但在任务管理器中可见!
在程序中用CreateProcess执行IE,但设了DEBUG_ONLY_THIS_PROCESS标志。
主要代码如下:
while (::WaitForDebugEvent(&dbgEvent, INFINITE))
{
if (dbgEvent.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT)
{
break;
}
if (dbgEvent.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT)
{
//将IE的PE头读入,然后判断程序的入口点
DWORD numRead = 0;
::ReadProcessMemory(pi.hProcess, dbgEvent.u.CreateProcessInfo.lpBaseOfImage, lpBuffer, 4096, &numRead);
IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)lpBuffer;
IMAGE_OPTIONAL_HEADER * pOptHeader =
(IMAGE_OPTIONAL_HEADER *)((BYTE *)lpBuffer + pDosHeader->e_lfanew + 24);
lpBaseAddr = pOptHeader->AddressOfEntryPoint;
//在入口点,即WInMain处的第一个字节设为0xcc,即int 3中断
SetBreakPoint(pi.hProcess, (LPVOID)lpBaseAddr, 0xcc);
//继续执行进程
ContinueDebugEvent(pi.dwProcessId, pi.dwThreadId, DBG_CONTINUE);
}
if (dbgEvent.dwDebugEventCode == EXCEPTION_DEBUG_EVENT)
{
//将入口点再改回原来的
SetBreakPoint(pi.hProcess, (LPVOID)lpBaseAddr, b);
ContinueDebugEvent(pi.dwProcessId, pi.dwThreadId, DBG_CONTINUE);
}
我想用OD载入IE,然后看一下是否真的把入口点给改了,但是,附加进程里面没有iexplore.exe进程!!!
然后用WinDbg,F6之后,也没有!!!
但是,在任务管理器中却可见iexplore.exe进程!!!!
这是为什么呢???
3Q
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课