我试图逐字节读取加载到我的可执行文件中的ntdll.dll的内存。该可执行文件在我的x64windows7机器上编译为x32可执行文件。我编写了一个名为FindPattern的函数,它接收一个特定的字节数组,并在ntdll.dll模块中查找这个字节数组。我已经在其他模块上检查过这个功能,我确信它工作正常。现在当我在我的ntdll模块上使用这个函数时,它在读取内存ntdll+0x1000时崩溃。我在windbg上检查过这个,windbg也不能读取内存:0:000>dbntdll+FF0L2077df0ff00000000000000000-0000000000000000........
您好,我正在尝试使用WinDbg查看memory.dmp内核转储文件,以诊断崩溃。当我打开崩溃文件并获取符号时,我收到消息BugCheckA,{2,ff,4e,fffff801a42ebff2}CompressedPageDataReaderwarning:failedtoget_SM_PAGE_KEYsymbol.CompressedPageDataReaderwarning:failedtoget_SM_PAGE_KEYsymbol.Probablycausedby:ntkrnlmp.exe(nt!KxWaitForLockOwnerShipWithIrql+12)Followup
我想以与windbg的dt命令相同的方式转储结构的字段和偏移量。例如,我想转储Microsoft公共(public)符号中的_PEB结构(因为windbg的DT命令有效)。从MSDN文档中我了解到SymFromName函数应该能够执行此操作,下面是我尝试过的代码,该代码在SymFromName上失败并出现LastError126(找不到指定的模块)。从注册的回调中,我得到以下输出:CBA_SET_OPTIONSCBA_SET_OPTIONSCBA_SET_OPTIONSCBA_EVENT:code0descDBGHELP:SymbolSearchPath:symsrv*symsrv.d
我正在尝试追踪Windows中C++应用程序中的内存泄漏,并且我得到了包含大量泄漏对象的应用程序的内存转储。我正在使用Windbg通过执行以下操作来追踪它们://Getheapstats!heap-s这显示了以下内容:HeapFlagsReservCommitVirtFreeListUCRVirtLockFast(k)(k)(k)(k)lengthblockscont.heap-----------------------------------------------------------------------------00150000000000021024272272202
我有WOW64崩溃转储,其中包含调用堆栈信息,例如:0018fb0077c06a8b0018fbc80018ffc40018fc18ntdll_77bc0000!ExecuteHandler2+0x26或喜欢:0018fb0077c06a8b0018fbc80018ffc40018fc18ntdll_772d0000!ExecuteHandler2+0x26ntdll_772d0000好像是一个dll的名字,但是我在C:\Windows\SysWOW64中没有看到,我也很好奇为什么在同一台机器上会有不同的名字,比如ntdll_77bc0000和ntdll_772d0000。谢谢。
我是内核模式Windows驱动程序开发的新手,在从WFP标注示例中获取调试信息时遇到问题。我正在寻找更多选项或关于我一直在尝试的选项做错了什么的提示。首先,我下载了WFPsampler并按照其描述中的说明进行操作。我正在使用通过模拟串行电缆连接的Windows8.1x64主机和Windows7x64目标。它们都是VirtualBoxVM。我调试的主要命令是WFPSampler.Exe-sPROXY-lFWPM_LAYER_ALE_BIND_REDIRECT_V4-aaid"C:\ProgramFiles(x86)\InternetExplorer\iexplore.exe"-pla10
对于堆栈地址,我有以下来自Windgb的PDE/PTE信息:kd>!pte6EFFCVA0006effcPDEatC0600000PTEatC0000370contains0000000065D39867contains0000000000000020pfn65d39---DA--UWEVnotvalidDemandZeroProtect:1-Readonly即使PTE无效,WinDBG如何找到只读状态?如何更改它?必须通过VAD完成吗? 最佳答案 如果未设置PTE的“valid”位(在您的示例中就是这种情况),则PTE由操作系统处
我已尝试将调试器附加到Windows8.1中的Services.exe,但我始终收到“访问被拒绝”。即使在确保WinDbg以“管理员身份”运行(以提升启动)之后也是如此。只是为了测试,我尝试从任务管理器创建一个内存转储文件,但我得到了同样的错误。我还尝试使用Sysinternals(ProcExp)中的ProcessExplorer创建转储,但我遇到了同样的错误。上图为services.exe所在的进程树(使用procexp查看)。有趣的是,我们可以为wininit.exe和svchost.exe创建转储文件,但不能为services.exe创建转储文件。我让一些同事在Windows7
我想捕获有时会停止响应几分钟的应用程序的堆栈跟踪。当应用程序停止响应时,windows桌面也停止响应鼠标点击,尽管此时其他一些已经运行的应用程序工作正常(例如windbg工作正常,ProcessExplorer刷新其屏幕,但不响应鼠标事件).虽然应用程序没有响应,但它实际上占用了一个CPU内核的大约80%。这就是我想要获得堆栈跟踪的原因。行为不端的应用程序通常需要大约2-3分钟才能完成其奇怪的工作,或者如果按下Ctrl+Esc,它会立即响应(当然还会打开开始菜单...)我将WinDbg附加到行为不当的应用程序,当我发出Break命令时,直到应用程序开始再次响应时才会发生入侵。据我所知,
我正在尝试使用WinDbg调试一款名为“Ballmaster”的非常古老的游戏(我没有其源代码)。当显示对话框时,我将WinDbg附加到游戏中,这样UI线程的调用堆栈就不会改变。以下是正在运行的线程列表:当我点击Ballmasterthread,呈现如下调用栈:ntdll!NtDelayExecution+0xcKERNELBASE!SleepEx+0x99KERNELBASE!Sleep+0xfUSER31!HookedCreateWindowExA+0x41DlgBox!Ordinal49+0x35ddDlgBox!Ordinal49+0x4d58uxtheme!ThemePreD