windbg-.process切换进程(内核)

.process

.process
命令指定要用作进程上下文的进程(Set Process Context)

.process显示当前进程的EPROCESS,这里显示当前进程为test.exe

[cpp] view plain copy

print?

  1. kd> .process
  2. Implicit process is now 821f5da0
  3. kd> ? @$proc
  4. Evaluate expression: -2111873632 = 821f5da0
  5. kd> !process 821f5da0 0
  6. PROCESS 821f5da0  SessionId: 0  Cid: 06e8    Peb: 7ffde000  ParentCid: 0620
  7. DirBase: 02b40380  ObjectTable: e1112818  HandleCount:  20.
  8. Image: test.exe

kd> .process
Implicit process is now 821f5da0
kd> ? @$proc
Evaluate expression: -2111873632 = 821f5da0
kd> !process 821f5da0 0
PROCESS 821f5da0  SessionId: 0  Cid: 06e8    Peb: 7ffde000  ParentCid: 0620
    DirBase: 02b40380  ObjectTable: e1112818  HandleCount:  20.
    Image: test.exe

可以通过/r /p来切换进程上下文,意味着接下的命令都使用新的进程上下文,比如内存,但这没有改变目标系统,只是影响了windbg的输出

[cpp] view plain copy

print?

  1. kd> .process /r /p 81e74b58
  2. Implicit process is now 81e74b58
  3. .cache forcedecodeuser done
  4. Loading User Symbols
  5. PEB is paged out (Peb.Ldr = 7ffdc00c).  Type ".hh dbgerr001" for details
  6. kd> db 1000000
  7. 01000000  4d 5a 90 00 03 00 00 00-04 00 00 00 ff ff 00 00  MZ..............
  8. 01000010  b8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00  [email protected]
  9. 01000020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
  10. 01000030  00 00 00 00 00 00 00 00-00 00 00 00 e0 00 00 00  ................
  11. 01000040  0e 1f ba 0e 00 b4 09 cd-21 b8 01 4c cd 21 54 68  ........!..L.!Th
  12. 01000050  69 73 20 70 72 6f 67 72-61 6d 20 63 61 6e 6e 6f  is program canno
  13. 01000060  74 20 62 65 20 72 75 6e-20 69 6e 20 44 4f 53 20  t be run in DOS
  14. 01000070  6d 6f 64 65 2e 0d 0d 0a-24 00 00 00 00 00 00 00  mode....$.......
  15. kd> .process /r /p 821f5da0
  16. Implicit process is now 821f5da0
  17. .cache forcedecodeuser done
  18. Loading User Symbols
  19. .........
  20. kd> db 1000000
  21. 01000000  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  22. 01000010  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  23. 01000020  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  24. 01000030  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  25. 01000040  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  26. 01000050  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  27. 01000060  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
  28. 01000070  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????

kd> .process /r /p 81e74b58
Implicit process is now 81e74b58
.cache forcedecodeuser done
Loading User Symbols
PEB is paged out (Peb.Ldr = 7ffdc00c).  Type ".hh dbgerr001" for details
kd> db 1000000
01000000  4d 5a 90 00 03 00 00 00-04 00 00 00 ff ff 00 00  MZ..............
01000010  b8 00 00 00 00 00 00 00-40 00 00 00 00 00 00 00  [email protected]
01000020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
01000030  00 00 00 00 00 00 00 00-00 00 00 00 e0 00 00 00  ................
01000040  0e 1f ba 0e 00 b4 09 cd-21 b8 01 4c cd 21 54 68  ........!..L.!Th
01000050  69 73 20 70 72 6f 67 72-61 6d 20 63 61 6e 6e 6f  is program canno
01000060  74 20 62 65 20 72 75 6e-20 69 6e 20 44 4f 53 20  t be run in DOS
01000070  6d 6f 64 65 2e 0d 0d 0a-24 00 00 00 00 00 00 00  mode....$.......
kd> .process /r /p 821f5da0
Implicit process is now 821f5da0
.cache forcedecodeuser done
Loading User Symbols
.........
kd> db 1000000
01000000  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000010  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000020  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000030  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000040  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000050  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000060  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
01000070  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????

可以用/i来切换,它会进行实际的进程切换,所以执行后先g一下,如果使用了 /i,必须使用g (Go)命令来执行目标。数秒之后,目标会再次中断到调试器中,并且指定的Process 被激活并用作当前进程上下文。

jpg改rar

时间: 2024-10-28 16:02:56

windbg-.process切换进程(内核)的相关文章

浅析Windows系统调用——2种切换到内核模式的方法

首先总结2种切换到内核模式方法的各自流程: 内存法(中断法): (用户模式)WriteFile() -> ntdll!NtWriteFile() -> ntdll!KiIntSystemCall() -> int 2Eh -> 查找IDT的内存地址,偏移0x2E处 ->(内核模式)nt!KiSystemService() -> nt!KiFastCallEntry() -> nt!NtWriteFile() 通过0x2E中断转移控制到内核模式后,系统服务分发/调度

Linux进程/内核模型

内核必须实现一组服务和相应的接口,应用程序则可以使用这些接口,而不是直接与硬件打交道. Linux内核主要由以下5个子系统组成:进程调度.内存管理.虚拟文件系统.进程间通信以及设备驱动. 在这个组成中,最核心的就是进程管理->进程调度和进程间通信. 在Linux系统中,我们编写的任何应用层程序,不管是上层还是属于中间框架层的代码,甚至是最底层的驱动代码,都可以以进程的形式在系统上运行.CPU可以运行在用户态和内核态. 在Linux 进程/内核模型中,每个进程就是执行在机器上的唯一的镜像,它们对系

Node.js API —— process(进程)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 进程    ○ Event: 'exit'    ○ Event: 'uncaughtException'    ○ Signal Events    ○ process.stdout    ○ process.stderr ○ process.stdin ○ pro

Process类 进程管理器Demo

Process用于管理计算机的进程,下面给出一个C#进程管理器的DEMO. namespace ProcessManager { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { listView1.FullRowSelect = true; GetProcess(); } priva

FreeRTOS-为什么关中断之后切换进程?

https://mp.weixin.qq.com/s/S5HBH3RTo0B2irr8sGwDdw 一. 基本问题 FreeRTOS会在关键区即taskENTER_CRITICAL()和taskEXIT_CRITICAL()包裹的区间中,执行进程切换.即在关闭中断的时候,进行进程切换. 我们已经知道,即便关闭中断,PowerPC的sc中断,还是可以得到响应.但是时钟中断呢?这是个外部中断,无法得到响应. 那么是何时打开的中断呢?新进程切入之后,立即打开中断?在多个TASK级别做开关中断配对? 1

WinDbg设置托管进程断点

WinDbg的Live模式调试..Net 托管代码 ,使用bp,bu,bm无法设置断点,也许是我不会.研究了下,托管代码有自己的命令,!BPMD 模块名 完全限定的方法名 步骤: 1.查找进程PID,用WinDbg,Attach上 2.使用反编译工具(IL),查找需要断点的方法名,需要完全限定名. 3.根据名称,使用!name2ee  也可找到方法的完全限定名. 4.使用!BPMD 模块名 完全限定的方法名 设置断点.这是托管代码设置断点命令.设置完成后,显示Found 1 methods in

系统调用syscall---用户态切换到内核态的唯一途径

1.应用程序有时需要内核协助完成一些处理,但是应用程序不可能执行内核代码(主要是安全性考虑), 那么,应用程序需要有一种机制告诉内核,它现在需要内核的帮助,这个机制就是系统调用. 2.系统调用的本质是,应用程序主动触发软中断,这个软中断异常立即被系统捕获到(cpu指令产生异常,触发异常处理程序),在异常处理程序中发现产生的异常是128号异常,于是执行这个异常的处理程序,这个程序就是系统调用的处理程序,通过指定不同的软中断号,异常处理程序跳转到对应的系统调用的内核态实现程序中执行,于是内核态代替用

[LeetCode] 582. Kill Process 终止进程

Given n processes, each process has a unique PID (process id) and its PPID (parent process id). Each process only has one parent process, but may have one or more children processes. This is just like a tree structure. Only one process has PPID that

Python Process创建进程的(2种方法)

Python 在 multiprocessing 模块下提供了 Process 来创建新进程.与 Thread 类似的是,使用 Process 创建新进程也有两种方式: 以指定函数作为 target,创建 Process 对象即可创建新进程. 继承 Process 类,并重写它的 run() 方法来创建进程类,程序创建 Process 子类的实例作为进程. Process 类也有如下类似的方法和属性: run():重写该方法可实现进程的执行体. start():该方法用于启动进程. join([