上一页 1 2 3 4 5 6 7 ··· 19 下一页

2020年11月6日

关于bad_typeid异常

摘要: 什么是bad_typeid异常? 当typeid运算符应用于多态类型的已取消引用的空指针值时,将引发此类型的异常。 继承关系: class bad_typeid : public exception 例子: // expre_bad_typeid.cpp // compile with: /EHsc 阅读全文

posted @ 2020-11-06 07:53 活着的虫子 阅读(381) 评论(0) 推荐(0) 编辑

2020年11月5日

关于std::bad_cast异常

摘要: 什么是bad_cast异常? 当对引用类型的动态转换未通过运行时检查(例如,因为类型与继承无关)时,将引发此类型的异常。 继承关系 class bad_cast : public exception 例子: // expre_bad_cast_Exception.cpp // compile wit 阅读全文

posted @ 2020-11-05 08:00 活着的虫子 阅读(3242) 评论(0) 推荐(1) 编辑

2020年11月4日

我的内核调试器无法连接

摘要: 在windbg中,可以使用Ctrl+Alt+D查看调试器的内部信息流。在KD中,使用Ctrl+D和ENTER来切换输出。启用这个输出,我可以看到调试器无法从调试端口读取数据,而且它正在超时。错误“SYNCTARGET:Timeout.”清楚地表明调试主机无法与调试目标通信,尤其是在“Send Bre 阅读全文

posted @ 2020-11-04 08:17 活着的虫子 阅读(409) 评论(0) 推荐(0) 编辑

2020年11月3日

Visual studio从符号服务器搜索中排除模块

摘要: 符号服务器访问是对比调试器。能够自动下载与当前系统匹配的所有程序(或者最终用户系统,如果我们想调试崩溃转储)的符号是非常方便的。但是有一个小问题:有些模块的符号在公共符号服务器上没有。但是调试器并不知道,因此每次我们启动调试会话时,调试器都会连接符号服务器并尝试下载模块的符号,但没有成功。因此,调试 阅读全文

posted @ 2020-11-03 08:14 活着的虫子 阅读(171) 评论(0) 推荐(0) 编辑

2020年11月2日

Dump文件数据存储格式(七)

摘要: 九、模块列表流(ModuleListStream) ModuleListStream流包含进程已加载模块信息。它紧跟随在ThreadInfoListStream后面。ThreadInfoListStream信息如下: 0x15f4+0n5068=0x29c0 而ModuleListStream如下 阅读全文

posted @ 2020-11-02 07:59 活着的虫子 阅读(370) 评论(0) 推荐(0) 编辑

2020年10月30日

记一次System.IO.DirectoryNotFoundException异常的排查

该文被密码保护。 阅读全文

posted @ 2020-10-30 07:48 活着的虫子 阅读(0) 评论(0) 推荐(0) 编辑

2020年10月29日

为什么".loadby sos clrjit"在有的dmp文件执行成功,在另外的dmp文件执行不成功?

摘要: 在日常分析dmp文件工作中,我发现用".loadby sos clrjit"指令来加载sos扩展库在有的dmp文件成功有的不成功,都是报如下错误: 0:036> .loadby sos clrjitThe call to LoadLibrary(sos.dll) failed, Win32 erro 阅读全文

posted @ 2020-10-29 08:00 活着的虫子 阅读(265) 评论(0) 推荐(0) 编辑

2020年10月28日

Dump文件数据存储格式(六)

摘要: 八、线程信息列表流(ThreadInfoListStream) ThreadInfoListStream包含了线程状态信息,在ThreadListStream的后面就是ThreadInfoListStream了。 ThreadListStream如下: 0x720+0n3796=0x15F4 而Th 阅读全文

posted @ 2020-10-28 07:48 活着的虫子 阅读(272) 评论(0) 推荐(0) 编辑

2020年10月27日

关于异常System.IO.DirectoryNotFoundException

摘要: 什么是System.IO.DirectoryNotFoundException 找不到文件或目录的部件时引发的异常。 继承关系 Object Exception SystemException IOException DirectoryNotFoundException 例子 using Syste 阅读全文

posted @ 2020-10-27 08:20 活着的虫子 阅读(3782) 评论(0) 推荐(0) 编辑

2020年10月26日

Dump文件数据存储格式(五)

摘要: 七、线程列表流(ThreadListStream) ThreadListStream流包含线程核心信息。它紧挨着异常信息流(ExceptionStream)。 异常信息流如下 0x678+0n168=0x720。而线程列表流如下 可知偏移是0x720,即证明杂项信息流是紧挨着系统信息流,大小有379 阅读全文

posted @ 2020-10-26 08:25 活着的虫子 阅读(360) 评论(0) 推荐(0) 编辑

2020年10月23日

Dump文件数据存储格式(四)

摘要: 六、异常信息流(ExceptionStream) 异常信息流包含异常信息。包括发生异常的线程、异常记录信息、线程上下文等信息。它紧挨着杂项信息流(MiscInfoStream)后面。 MiscInfoStream信息如下: 0x124+0n1365=0x678 我们看看ExceptionStream 阅读全文

posted @ 2020-10-23 08:07 活着的虫子 阅读(439) 评论(0) 推荐(0) 编辑

2020年10月22日

使用进程内存转储轻松解决事件查看器错误

摘要: 今天我将写一篇关于我如何使用SOS.Net框架调试扩展(和!analyze-v)以轻松解决.NETFramework异常。此异常阻止事件查看器正确显示。事件查看器返回了一个错误,该错误提供了有关导致该问题的实际原因的很少信息。在本例中,我将演示如何使用windbg来获取有关出错的信息。我不必对此问题 阅读全文

posted @ 2020-10-22 07:51 活着的虫子 阅读(1309) 评论(0) 推荐(1) 编辑

2020年10月21日

使用Microsoft Windows调试工具连接到远程存根(Remote Stub)的远程调试

摘要: Microsoft调试工具for Windows提供了两种创建远程调试连接的方法,包括“连接到远程会话”和“连接到远程存根”。连接到远程会话是这两个会话中最常用的,也是您通常需要的全部内容,但是它不允许客户端访问远程上缺少的调试符号。通常,远程调试会话将在所有用户都可以访问符号信息的公司网络中完成, 阅读全文

posted @ 2020-10-21 07:44 活着的虫子 阅读(609) 评论(0) 推荐(0) 编辑

2020年10月20日

Dump文件数据存储格式(三)

摘要: 五、杂项信息流(MiscInfoStream) 在系统信息流后紧挨着的就是杂项信息流。而系统信息流信息如下 0xEC+0n56=0x124 而杂项信息流如下: 可知偏移是0x124,即证明杂项信息流是紧挨着系统信息流,大小有1364字节。 MiscInfoStream包含各种信息。数据结构如下: t 阅读全文

posted @ 2020-10-20 08:01 活着的虫子 阅读(476) 评论(0) 推荐(0) 编辑

2020年10月19日

Dump文件数据存储格式(二)

摘要: 四、系统信息流 流目录后面紧接着就是流数据了。第一个流数据就是系统信息流。 可知,这个流的起始于文件偏移0xEC,大小是0x38,也就是56个字节。 从上图可知,系统信息流就是紧挨着流目录尾部。这个流包含了如下操作系统和处理器信息:处理器架构、级别、版本,CPU信息等。数据结构如下: typedef 阅读全文

posted @ 2020-10-19 08:01 活着的虫子 阅读(541) 评论(0) 推荐(0) 编辑

2020年10月16日

调试优化x64代码的挑战

摘要: 如果到目前为止您还没有机会调试优化的x64代码,请不要再等待太久,也不要落后于时代!由于类似x64 fastcall的调用约定加上大量的通用寄存器,在调用堆栈中的任意点查找变量值确实非常困难。在本文中,我想详细介绍一些我最喜欢的调试优化x64代码的技术。但是在深入研究这些技术之前,让我们先对x64调 阅读全文

posted @ 2020-10-16 08:11 活着的虫子 阅读(379) 评论(0) 推荐(0) 编辑

2020年10月15日

NTFS误报可用空间?

摘要: 我最近接到个问题,客户打电话来报告卷根的“磁盘大小”与卷属性中报告的“已用空间”数量之间存在显著差异。在考虑这一点时,我注意到我自己的C:驱动器有一个神秘的20GB的差异。 下面是我如何找到答案的故事。 在开始之前,有两种方法用于计算磁盘使用量…方法1–体积位图分析 下面的饼图显示的%已用%和%空闲 阅读全文

posted @ 2020-10-15 07:59 活着的虫子 阅读(393) 评论(0) 推荐(0) 编辑

2020年10月14日

.Net中的异常处理:高级异常

摘要: 这种处理的有效性主要取决于所选择的语言和平台,因此,详细了解它们的正确用法和行为非常重要,这样我们的用户和其他开发人员在诊断代码中的问题时免受痛苦。在本文中,我们将了解C和.NET在错误处理方面的作用。 词汇表CLR:公共语言运行时的缩写,是.NET运行时,它负责执行用所有.NET语言编译的应用程序 阅读全文

posted @ 2020-10-14 08:54 活着的虫子 阅读(692) 评论(0) 推荐(0) 编辑

2020年10月13日

!address -summary报错"The current target does not provide full memory information. No meaningful summary available. "

摘要: 今天分析一个dmp文件时,想看下内存的使用情况,于是执行!address -summary,结果却有如下输出: 0:000> !address -summaryThe current target does not provide full memory information. No meanin 阅读全文

posted @ 2020-10-13 08:06 活着的虫子 阅读(399) 评论(0) 推荐(0) 编辑

2020年10月12日

转储或实时系统的远程(内核或用户模式)调试

摘要: 在某些情况下,我们会执行实时调试以确定服务器故障的根本原因。在内存转储的情况下,文件通常非常大,因此通过网络复制文件,即使是在最快的广域网连接上,也可能需要很长时间。解决方案是远程调试。 你应该怎么做? 首先,需要两个人:一个是远程人员,另一个是通过使用安装在他们机器上的调试器调试进程来帮助远程用户 阅读全文

posted @ 2020-10-12 08:17 活着的虫子 阅读(184) 评论(0) 推荐(0) 编辑

2020年10月10日

如何从内核调试器访问用户模式调试器

摘要: 在某些情况下,您可能希望使用用户模式调试器从内核调试器中调试进程。它可能是你有一个加载内核模式驱动程序的应用程序,并且你希望能够调试应用程序的用户模式方面,然后进入内核以跟踪对内核的调用。 这是你需要做的! 通过串行电缆(调制解调器电缆)、USB电缆或FireWire电缆连接内核调试器,并将您的计算 阅读全文

posted @ 2020-10-10 07:57 活着的虫子 阅读(240) 评论(0) 推荐(0) 编辑

2020年10月9日

跟踪多进程死锁

摘要: 我最近处理的一个棘手的死锁问题开始。让我先解释一下表面症状,然后我们就可以找到好东西了。当运行Vista的用户尝试启动internetexplorer时,任何事情都不会发生。所以他们再次双击图标,还是什么也没发生。所以用户会重新启动并返回他们的网络活动。经过一些基本的故障排除后发现Iexplore. 阅读全文

posted @ 2020-10-09 08:47 活着的虫子 阅读(555) 评论(0) 推荐(0) 编辑

2020年10月8日

DLL注入工作原理

摘要: 简介 我最近研究了一个问题,Winlogon中两个线程的交互导致错误检查。一个线程是初始化GDI的Winlogon线程。这个场景的有趣之处在于另一个线程是如何在这个进程中结束的。 线程在干什么? 下面是线程堆栈的用户一半。线程试图加载DLL ChildEBP RetAddr Args to Chil 阅读全文

posted @ 2020-10-08 08:36 活着的虫子 阅读(789) 评论(0) 推荐(0) 编辑

2020年10月7日

设计完美断点

摘要: 说到现场调试,断点是最重要的。通常,在生产环境中解决一个非常复杂的问题需要在本地、非生产环境中调试我自己的一台测试机器。我通常会调试有问题的进程或代码,以便更好地了解它是如何工作的,以及在我进入时需要收集哪些数据。这通常涉及一些逆向工程,并对相关流程或模块进行代码审查。我们总是希望在进行实时调试时尽 阅读全文

posted @ 2020-10-07 08:25 活着的虫子 阅读(233) 评论(0) 推荐(0) 编辑

2020年10月6日

Windbg提示:KN、.Frame、DV和DT-这很简单

摘要: 我们很多人都认为调试器中的一些简单命令是理所当然的,这些命令可以让生活变得轻松。我想了几个特别能搭配的。第一个命令是kn。Kn将显示当前调用堆栈,并在单个调用的最左边包含堆栈帧编号。我在Windbg中运行BadWindow.EXE文件,通过~0s将我的线程设置为线程0。然后我只需键入kn。这将转储调 阅读全文

posted @ 2020-10-06 08:39 活着的虫子 阅读(705) 评论(0) 推荐(0) 编辑

2020年9月30日

如何调试WOW64应用程序

摘要: 最近,我处理了一个问题,在系统帐户下安装32位Office时没有发生注册表反射。这需要同时研究32位Office代码和实现注册表反射的Wow64代码。使用32位调试器附加到Wow64进程时,就像在32位计算机上调试32位进程一样;进程中没有64位二进制文件。但是,我们需要调试Wow64来调试注册表反 阅读全文

posted @ 2020-09-30 08:02 活着的虫子 阅读(866) 评论(0) 推荐(0) 编辑

2020年9月29日

使用调试器脚本增强断点

摘要: 最近要求我在升级过程中跟踪一个问题。问题归结为在安装过程中捕获打开特定注册表服务项的Microsoft组件。像这样的问题经常需要实时调试来实时捕获注册表访问。我本可以在RegOpenKeyExW()上设置一个断点,并检查传递到函数中的每个请求的键,但是考虑到RegOpenKeyExW()是一个使用率 阅读全文

posted @ 2020-09-29 08:21 活着的虫子 阅读(245) 评论(0) 推荐(0) 编辑

2020年9月28日

MDL中捕获到损坏的页表页

摘要: 系统会遇到随机错误检查,内存损坏。有趣的是,腐败有一个非常特殊的模式——它看起来像是一个PFN地址,在这个过程中,标志被随机地放置在页面表页面的几个地方。内存管理器永远不会做这种事情,我怀疑驱动程序正在编辑用户页表页,这是不应该做的。 让我们看看堆栈: kd> kb *** Stack trace 阅读全文

posted @ 2020-09-28 08:15 活着的虫子 阅读(269) 评论(0) 推荐(0) 编辑

2020年9月25日

跟踪MmSt分页池使用情况

摘要: 我最近注意到的一个趋势是,在尝试KB304101(PoolUsageMaximum)之后,MmSt标签的使用率仍然很高,这是一种趋势。内存管理器将这些池分配用于节对象原型pte。通常只有两种选择:1)升级到64位平台,或2)减小卷的大小。但我们可能想知道哪些映射文件正在使用这个内存。这是如何做到的。 阅读全文

posted @ 2020-09-25 08:00 活着的虫子 阅读(384) 评论(0) 推荐(0) 编辑

2020年9月24日

了解NTFS压缩

摘要: 在您选中“压缩内容以节省磁盘空间”复选框之前,最好先了解一下这对磁盘上运行的快乐的小字节、字节和半字节有何影响。备份应用程序在备份压缩文件时通常会收到ERROR U DISK U FULL errors,当驱动器上还有几GB的可用空间时,这会导致相当大的混乱。复制压缩文件时也可能出现其他问题。本文的 阅读全文

posted @ 2020-09-24 08:27 活着的虫子 阅读(2081) 评论(1) 推荐(0) 编辑

2020年9月23日

如何跟踪高CPU在用户模式应用程序-现场调试!

摘要: 我想谈谈我们经常处理的一个常见问题。我们的任务通常是在用户模式进程/应用程序中查找哪些函数正在使用CPU。通常,用户会发现一个应用程序使用的CPU比他们预期的要多,这可能会影响整个系统的性能和响应能力。 对于这个练习,我编写了一些人为的示例代码,称为EATCPU。它包含在博客文章的底部。任务管理器的 阅读全文

posted @ 2020-09-23 08:18 活着的虫子 阅读(426) 评论(0) 推荐(0) 编辑

2020年9月22日

如何与转储文件建立丰富多彩的关系

摘要: 我每天都看很多转储文件。在这种情况下,我喜欢充分利用windbg可定制的外观和感觉。实际上,我在DMP文件和CMD文件之间有一个关联设置,每当我双击一个转储文件时,这个文件就会加载我自定义的颜色工作区。我喜欢有彩色源代码和调试命令窗口输出的黑色背景。下面是我典型的调试会话的快照。 下面告诉你的设置方 阅读全文

posted @ 2020-09-22 08:11 活着的虫子 阅读(211) 评论(0) 推荐(0) 编辑

2020年9月21日

Kernel Stack Overflows

摘要: 今天我想谈谈一个常见的错误,我们在日常工作钟许多案例中都看到了这一点。它涉及到驱动程序占用内核堆栈上的过多空间,从而导致内核堆栈溢出,然后将通过以下错误检查之一使系统崩溃: 1. STOP 0x7F: UNEXPECTED_KERNEL_MODE_TRAP 当参数1设置为EXCEPTION_DOUB 阅读全文

posted @ 2020-09-21 08:38 活着的虫子 阅读(1000) 评论(0) 推荐(0) 编辑

2020年9月18日

非分页池的消耗

摘要: 我最近在处理一个问题,服务器在几天内耗尽了NonPagedPool。通常,我们只需要使用像PoolMon这样的工具来识别有问题的pool标记,然后使用本文中的方法找到使用该pool标记的驱动程序。然而,让这个案例有趣的是pool标记,而且我们无法使用常规方法识别驱动程序。你一会儿就会明白我的意思了。 阅读全文

posted @ 2020-09-18 07:51 活着的虫子 阅读(496) 评论(1) 推荐(1) 编辑

2020年9月17日

MBR反汇编

摘要: 关于MBR的反汇编,我想花点时间向您展示一下快速而肮脏的方法。首先,使用低级扇区编辑器(如Microsoft资源工具包实用程序DiskProbe)将MBR转储到文件中。保存文件后,启动一个程序(如记事本)并使用Windbg(Windows调试器)附加到它。接下来,找到一个有效但未占用的内存范围(默认 阅读全文

posted @ 2020-09-17 07:57 活着的虫子 阅读(444) 评论(0) 推荐(0) 编辑

2020年9月16日

LPC (Local procedure calls)(二)内核调试扩展

摘要: 我们将讨论调试器扩展,这些扩展允许您查看与LPC相关的问题。 LPC Kernel Debugger Extensions Command Description !lpc Display the list and description of all the !lpc commands !lpc 阅读全文

posted @ 2020-09-16 08:00 活着的虫子 阅读(547) 评论(0) 推荐(0) 编辑

2020年9月15日

LPC (Local procedure calls) (一)数据结构

摘要: 什么是LPC LPC(Local-Process-communicationandnotlocalprocedure-Calls)是一种在NT内核中实现的基于消息的高速通信机制。LPC可用于两个用户模式进程之间、用户模式进程与内核模式驱动程序之间或两个内核模式驱动程序之间的通信。一个例子是通过LPC 阅读全文

posted @ 2020-09-15 07:51 活着的虫子 阅读(1592) 评论(0) 推荐(0) 编辑

2020年9月14日

桌面堆概述(二)

摘要: 我想提供一些关于桌面堆的后续信息。在第一篇文章中,我没有讨论64位Windows、3GB或Vista上与桌面堆相关的内存范围的大小。所以,不用再多说了,下面是各种平台上的相关大小。 Windows XP (32-bit) · 48 MB = SessionViewSize (default regi 阅读全文

posted @ 2020-09-14 07:58 活着的虫子 阅读(333) 评论(0) 推荐(0) 编辑

2020年9月11日

桌面堆概述(一)

摘要: 桌面堆可能不是你花很多时间考虑的事情,这是件好事。但是,有时您可能会遇到由于桌面堆耗尽而导致的问题,然后了解此资源会有所帮助。让我先说一下,在Vista中,内核地址空间的情况发生了显著的变化,而我今天所说的大部分内容并不适用于Vista。 奠定基础:会话空间 要理解桌面堆,首先需要了解会话空间。wi 阅读全文

posted @ 2020-09-11 07:53 活着的虫子 阅读(793) 评论(0) 推荐(0) 编辑

2020年9月10日

做好在windows系统上调试的工具准备

摘要: 为了开始调试工作,我想向您提供一个工具列表。 以下工具是“Debugging Tools for Windows”的一部分–您肯定需要这些工具: · windbg · cdb · ntsd · tlist · gflags · adplus · UMDH · symcheck Sysinternal 阅读全文

posted @ 2020-09-10 07:55 活着的虫子 阅读(269) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 19 下一页

导航