如何得到另一个进程的上下文?
最好有个现成的例子。以前我尝试着做过,但是从来没有成功。

解决方案 »

  1.   

    线程才有上下文的概念吧?
    进程是资源分配单位,不存在上下文一说.
    GetThreadContext获取线程上下文.但要先将线程挂起.
      

  2.   

    我觉得可以用 DbgPrint 函数来查看进程的上下文。。
    比如:
    ULONG Address = (ULONG)PsGetCurrentProcess();
    DbgPrint("ProcessName %s \n",(char*)Address+0x174);
    DbgPrint("Process Context %d \n",*(ULONG*)(Address+0x18)); 也不知道对不对,,还 有待高人确认。。
      

  3.   

    应该是线程上下文。“上下文”是指线程的各个寄存器值,进程是线程的容器,进程并不执行,我们通常理解的进程执行,其实是进程里主线程的执行。只有线程才有上下文的。
    先用SuspendThread将目标线程挂起,再用GetThreadContext获取目标线程上下文。