实验2 windbg双机调试+系统调用过程
来源:互联网 发布:中国网络直播行业协会 编辑:程序博客网 时间:2024/06/03 12:29
1.配置windbg双机调试环境,给出关键步骤及最终成功断下的截图。
1).在安装好的win7虚拟机设置中,添加一个串行端口,并选择输出到命名管道,具体设置如图。
这样设置之后,在后面的步骤中,主机便能通过这个管道与虚拟机相连进行双机调试。
2)在win7虚拟机中以管理员权限打开命令行并做以下设置
3)在本机里创建一个windbg的快捷方式,在目标一栏里加上以下代码
-b -k com:port=\.\pipe\com_1,baud=115200,pipe
4)打开xin7虚拟机,并选择调试模式,这时再打开本机的windbg,发现成功断下
这时被调试机就像死机,没有反应
在WinDbg中,kd> 多次输入g回车,直到变成Debuggee is running…时,被调试机就可以正常操作了。
2.观察windows系统调用过程,给出关键步骤截图。(可不限于课上所讲,只需选择任意一个系统调用过程,给出从应用层函数调用开始,到sysenter调用的分析过程。如有后继深入分析,考虑加分
1)虚拟机中运行记事本程序,在外部的windbg中使之断下:ctrl+break
2)搜索该进程信息,并转入该进程空间
用!process 0 0 notepad.exe命令查看记事本程序,查看到地址8792b030
使用非侵入式的切换进程空间 .process /i /p 0x8792b030 这个命令,切换后再g一次继续
这时再用!Process命令看看当前进程,的确切换到了notepad.exe
3)重载符号表
连的是CMCC的网,200k/s下载的好慢,中间等了一段时间
4)用bp命令在kernel32!CreateFileW这个函数处下断点,g执行到断点停下来
5)用u命令反汇编当前函数,加上l100的参数,显示100行
6)在75aea937地址处发现可疑的call
7)用bp命令在此处下断点,g执行到这个call处
8)单步t步入到call中,看到了ntdll!NtCreateFile,记住mov eax,42h中的42,是快速系统调用的调用号
9)u反汇编,目标是进入到打阴影的call
10)单步t执行3次,进入call,看到了ntdll!KiFastSystemCall
11)u反汇编一下,找到了int 2E
Ntdll.dll通过软件中断int 2Eh进入ntoskrnl.exe,就是通过中断门切换CPU特权级
12)单步t执行到 sysenter指令处
13)因为syscenter是一条汇编指令,执行后会直接往下执行别的指令,所以我们如果想切换到Ring0层的话,就要直接读取特殊模块寄存器SYSENTER_EIP_MSR
记录下 83c5b0c0
14)在这里下一个条件断点,并执行到断点处 42是第8步里记录下的调用号
15)u命令查看当前函数100行
找到call ebx,记录下地址83c5b1e8
16)bp在83c5b1e8处下断点,g执行到该断点
17)t命令进入call,再u反汇编当前函数100行
CreateFileW经过层层调用最终到达了Ring0层调用内核函数NtCreateFile
- 实验2 windbg双机调试+系统调用过程
- windbg 双机调试配置(xp)系统
- WinDBG双机调试配置
- windbg双机调试配置
- Windbg双机调试
- Windbg双机调试
- Windbg 双机调试进程
- winDbg+VirtualBox双机调试
- windbg双机远程调试
- Windbg双机调试配置
- win8 + vmware + windbg 双机调试
- VirtualBox+Windbg 双机调试配置
- windbg+winXP 双机调试配置
- VirtualBox Windbg 双机调试配置
- WinDbg双机调试,很慢
- win8 + vmware + windbg 双机调试 .
- win7 x64 windbg 双机调试
- 配置 WinDbg 双机调试 环境
- npm
- Flex布局 Flexbox属性详解
- CMake加入GDB功能
- 【Maven+SSM】备注:eclipse整合spring的那些坑
- 整形计算器和可变参数
- 实验2 windbg双机调试+系统调用过程
- Java I/O系统之Print 流
- mysql 存储过程 select in( param)语句 传参 问题
- 1205: 你爱我么?
- Java的类路径讲解以及参数-cp的用法
- Android四大组件之Service 远程服务 通过AIDL进行进程间复杂类型数据交换
- 【Java】Java项目导出Jar文件并运行方法
- Python中map和reduce详解
- CSR蓝牙烧录电压