Windbg内核调试之二: 常用命令】的更多相关文章

运用Windbg进行内核调试, 熟练的运用命令行是必不可少的技能. 但是面对众多繁琐的命令, 实在是不可能全部的了解和掌握. 而了解Kernel正是需要这些命令的指引, 不断深入理解其基本的内容. 下面, 将介绍最常用的一些指令, 使初学Kernel调试的朋友们能有一个大致的了解. 至于如何熟练的运用它们, 还需要实际的操作过程中进行反复的琢磨. Windbg能够方便的进行远程调试和本地进程调试(只限于User模式), 远程调试又分User mode和Kernel mode两种. 个人认为用Wi…
Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Windows还提供了dump文件给用户分析,至少能比较容易的找到错误的原因.一般蓝屏要么是内核程序中的异常或违规,要么是数据结构的损坏,也有boot或shutdown的时候内核出错.有时候蓝屏是一闪而过,紧接着是系统重启:有时候是蓝屏等待.总之蓝屏的时候都提示了一些停止代码和错误信息,不过这些提示是不全面的,…
Technorati 标签: windbg,内核调试 WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器). 本教程的目标是给予一个已经有其他调试工具使用经验的开发者足够信息,使其能通过参考WINDOWS调试工具的帮助文件进行内核调试. 本文将假定开发者熟悉一般WINDOWS操作系统和进程的建立过程. 本文的重点是集成内核模式和用户态模式的图形化调试器WinDbg.KD在脚本和自动化调试中更有用,并且…
Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另一种过程. 很多人说Windbg不如SoftIce好用, 但是我使用过程中还是觉得Windbg能更好的反映系统状态, 而且相比SoftIce, Windbg更稳定(虽然它的部分操作略显复杂), 下面介绍Windbg的Kernel模式调试第一部分: 双机连接设置. Vista和XP不同, 没有boot…
Windbg程序调试是.Net高级开发需要掌握的必备技能,分析内存泄露.分析高CPU.分析线程阻塞.分析内存对象.分析线程堆栈.Live Dedugging.这个领域可以说一个技能+场景化应用的结合,如果单学Windbg命令,不理解实际Troubleshooting中的作用,是没有意义的.所以,准备搞个系列文章,3~5篇,分享给大家: 工欲善其事必先利其器,我们先从常用的命令和示例说起. 1. 先准备一个Dump文件,建议使用64位应用程序.例如:64位IIS应用的w3wp进程,64位exe进程…
这次我们通过一个实际调试驱动的例子,来逐步体会Windbg在内核调试中的作用.由于条件所限,大多数情况下,很多人都是用VMware+Windbg调试内核(VMware的确是个好东西).但这样的调试需要占用大量的系统资源,对于和我一样急性子的朋友来说这是不可接受的:).利用双机调试就可以让你一边喝咖啡一边轻松的看结果,而不至于郁闷的等待每次长达数分钟的系统响应.有关双机调试的基本设置,请参考:http://www.cnblogs.com/Sonic2007/archive/2008/03/20/1…
常用命令 where(w) 找出当前代码运行位置 list(l) 显示当前代码的部分上下文 list n(line number) 显示指定行的上下文 list m, n(line number) 显示指定开始行到结束行的代码 up(u) 返回上个调用点 down(d) 返回下个调用点 args(a) 显示当前所有变量 //此命令查看变量非常有用 print(p) 打印表达式或者变量结果 //此命令查看单个变量或者表达式的结果 !运行python命令,比如!test='hello'将会把test…
[TOC] 一.常用命令 1.目录 cd切换 cd 路径 切换到指定路径 cd .. 上一级 mkdir:创建目录 mkdir 目录名 pwd:查看 2.查看 ll命令:查询目录内容 ll 查看当前(ls -l) ll -a 查看所有(含隐藏) ll 目录 查看指定目录 grep命令:内容过滤 //语法1 : 对其他命令的结果进行过滤 其他命令 | grep -in 条件 //-i 忽略大小写 //-n 显示行号 例如: ll | grep -i JDK //语法2 :对"指定文件"进…
首先你要配置好测试环境:参考VMware+Windgb+Win7 内核驱动调试 在你的主机上配置Symbols 配置sympath,C:\Users\Admin\Desktop\first\objchk_win7_x86\i386是你编译好的sys目录: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;C:\Users\Admin\Desktop\first\objchk_win7_x86\i386 配置Source searc…
一.概述 1. “.”开头的文件是隐藏文件,大小写敏感是因为用C语言编写 2. DOS中 cd..可回到父目录 在LINUX中要用cd ..(用空格) 3. 4.LINUX命令有两种:仅root可执行的(super如sbin),所有用户都可执行的. 二.文件处理命令 1.文件处理命令ls (1) ls -l  详细信息显示时, 第一部分的10个字符: 第1个字符的含义表示文件类型.常用文件类型有三种:d(目录directory),-(二进制文件),l(软链接文件link). 剩下的9个字符分成3…
1. +增加权限:-去掉权限:=直接赋权. r(4)w(2)x(1) 重点掌握:通过数字授权,例如rxwr-xr--是754 例题:用root用户创建目录并在此目录新建文件,之后更改新文件的权限为777.问:普通用户可以删除该文件吗?(答案:不能) 下面情况呢?(答案:可以) 说明:对文件有w权限并不代表可以删除文件!文件/目录权限总结表    所以一般情况,目录的rx权限一般同时给出. 补充:su - 用户名(切换用户,root切换到普通用户不需要密码,其他情况均需要密码) 2.改变文件/目录…
原文发表于百度空间,2009-01-08========================================================================== 这一篇是主要是关于Vmware部分的设置,其实参考JIURL那篇很经典的<借助VMware实现单机使用WinDbg>就可以了.不过那篇文章里面有个小错误(不知道是原作者不小心,还是别人转载的时候错了),后面的波特率应为115200而非11520我就再来写一下吧,内容基本雷同,稍微精简一些 Vmware的相关…
在网络上,只要利用IP地址就可以找到目标主机,因此,如果黑客想要攻击某个网络主机,就要先确定该目标主机的域名或IP地址. IP地址概述 所谓IP地址就是一种主机编址方式,给每个连接在Internet上的主机分配一个32bit地址,也称为网际协议地址.一个完整的IP地址信息,通常应包括IP地址.子网掩码.默认网关和DNS等4部分内容,只有4部分协同工作时,用户才可以访问Internet并被Internet中的计算机所访问. IP地址:企业网络使用的合法IP地址,由提供Internet接入的服务商(…
一. angular-cli.json常见配置 { "project": { "name": "ng-admin", //项目名称 "ejected": false // 标记该应用是否已经执行过eject命令把webpack配置释放出来 }, "apps": [ { "root": "src", // 源码根目录 "outDir": "…
07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> 这个命令是scrapy最为常用的命令之一,它将会在当前目录下创建一个名为<project_name>的项目. settings 语法: scrapy settings [options] 该命令将会输出Scrapy默认设定,当然如果你在项目中运行这个命令将会输出项目的设定值. runspide…
最近整理了一下Windbg程序调试系列的文章,做个了索引贴,方便大家查询.搜索: Windbg程序调试系列1-常用命令说明&示例 Windbg程序调试系列1-Mex扩展使用总结 Windbg程序调试系列2-内存泄露问题 Windbg程序调试系列3-线程阻塞问题 Windbg程序调试系列4-Live Debugging Windbg程序调试系列5-高CPU问题分析 .Net 内存对象分析 周国庆 2019/8/6…
一.背景 作为一名程序员,怎么能不懂Git那些常用命令呢?于是花费一点时间来总结Git命令.关于安装的话,就不讲了. 二.常用命令 1.配置全局的用户名称和用户邮箱 git config --global user.name "用户名" && git config --global user.email "邮箱账号" git config --list git config user.name [root@centos-master ~]# git…
.cordll (控制CLR调试) 简介 .cordell命令控制托管代码调试和Microsoft.NET公共语言运行库(CLR). 使用形式 .cordll [Options] 参数 Options使用以下一个或多个以下选项: -l (小写的 L) 加载 CLR 调试模块. -IModule (大写的 i) 指定的名称或要进行调试的 CLR 模块的基址. -u 卸载 CLR 调试模块. -e 启用 CLR 调试. -d 禁用 CLR 调试. -D 禁用 CLR 调试和卸载 CLR 调试模块.…
调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 windbg命令分为标准命令.元命令.扩展命令 标准命令提供最基本的调试功能,不区分大小写.如:bp g dt dv k等 元命令提供标准命令没有提供的功能,也内建在调试引擎中,以.开头.如.sympath .reload等 扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中…
注:本文配置 环境为VMware® Workstation11.1.2 build-2780323+Windows xp SP2+Windbg 6.12.0002.63 x86 *在win7以后的操作系统中配置会略有不同,会在最后进行补充 一.虚拟机端配置: 1.打开虚拟机系统,在c盘根目录下找到boot.ini文件( 该文件是系统隐藏文件,修改时需要设置相关属性),打开,在最后加入以下内容(不加引号) “multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="…
原文发表于百度空间,2009-01-09========================================================================== 今天又想起来VirtualKD这个东西,试用了一下,真是爽坏了,可能我火星了~~ 很久以前就知道小喂有个VmKd工具,使用Vmware的后门指令直接拷贝数据来代替模拟串口,能大大提高调试时的数据传输速度.不过那个对VMware版本的依赖性太强,我的Vmware就没法用,所以很不爽得又放下了,很长一段时间也没关…
呵呵,搞点突兀的标题而已.其实说的还是如何使用WinDBG和VMware来搭建调试内核的环境而已,这些网上已经有数不清的教程了,不过我喜欢自己亲手写一下.第一,把这个过程写一遍能加深印象,就算以后忘记了也可以有笔记查找,快速想起来.第二.网上的教程很多都是互相抄来抄去,连错误也抄过去了.很典型一个错误就是Baud Rate,前面还写115200,后面就写成了11520了,狂汗! 按照我这篇笔记写的步骤去做,绝对能够成功,并且还能大略地了解到为什么要这样做的原因.第1部分是步骤,如果不想看原因的,…
一.gdb常用的命令 list                       l    常看源代码 break                  b    设置断点     b  10(行号)    b  fun(设置函数名)   b  9(行号)  if  条件(i==10) info  b                 查看断点个数 delete                d   删除断点   1(第几个断点)      d(删除所有断点) run                   …
一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:shell+内核 DOS Windows Unix Linux (开源的) 命令行 图形界面 命令行 命令行 单用户 单用户.多用户 多用户 多用户 单任务 多任务 多任务 多任务 ###<2>Linux操作系统 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 多任务,多用户 免费的,开源的 ###…
一.常用命令 1. 获取帮助 ① help 或 ? 2. 环境变量与相关命令 (1)环境变量 ① bootdely ② baudrate ③ netmask ④ ethaddr ⑤ bootfile ⑥ bootargs ⑦ bootcmd ⑧ serverip ⑨ ipaddr ⑩ stdin ⑪ stdout ⑫ stderr (2)相关命令 ① printenv ② setenv:setenv name value ③ saveenv 3. 串口传输命令 ① loadb ② loadx ③…
目录 tips:紧接上一篇,Linux常用命令指南[上] 2.4 文件解压缩 2.4.1 官宣的linux压缩工具:tar tar的基本命令格式为 tar [参数选项] [文件或目录] 我们前面学的命令凡是参数选项都要加-,tar命令有点特殊,加不加都可以,如 tar -z 可以写成 tar z. tar常用命令: tar -zcvf [压缩包名] [待打包文件或目录] # [压缩包名] 一般为 tar.gz 后缀 # z :通过gzip压缩或解压 # c :创建新的tar包 # v :显示命令…
p (Step) p命令执行单个指令或源代码行,并可选地显示所有寄存器和标志的结果值.当子例程调用或中断发生时,它们被视为单个步骤. 用户模式: [~Thread] p[r] [= StartAddress] [Count] ["Command"] 内核模式: p[r] [= StartAddress] [Count] ["Command"] 参数: Thread指定要继续执行的线程.所有其他线程都被冻结.只能在用户模式下指定线程. r 打开和关闭寄存器和标志的显示…
gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) info break: 查看断点信息 (gdb) r:运行程序 (gdb) n:单步执行 (gdb) c:继续运行 (gdb) p 变量 :打印变量的值 (gdb) bt:查看函数堆栈 (gdb) finish:退出函数 (gdb)…
一.linux下的文件目录 linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层 是根目录"/",然后在此目录下再创建其他的目录 深刻理解linux文件目录是非常重要的. linux下的根目录中重要的目录如下是系统自动分配的 root目录.home目录.bin目录.sbin目录.mnt目录.etc目录.var目录.boot目录.usr目录.tmp目录(均为同级目录) root目录:用于存放root用户相关文件的目录 home目录:用于存放普通用户的相关文件的目录 bin目…
gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于7.0,之前使用过gdb6.3调试多线程是不行的. 从上图可以看出两个线程都阻塞在wait上,而且还给出了在哪一行代码中,很容易就定位到产生死锁的位置. 有时候线程太多,想写到文件里,可以: (gdb)set logging file <文件名> (gdb)set logging on (gdb)…