问题:我在Windows上有一个程序dummy.exe。该程序启动后将绑定(bind)到UDP端口5060。但另一个程序也想绑定(bind)端口5060。我做了什么:使用windbg启动dummy.exe,并在ws2_32!bind设置断点当断点命中时,我使用命令ew更改了参数(端口值)此dummy.exe将绑定(bind)到新端口,并且运行良好。问题:我怎样才能轻松做到这一点?写一个简单的Windows调试器?也许我可以破解或修改dummy.exe文件,但该怎么做?您是如何实现这一目标的?谢谢编辑1:非常感谢@CodyGray和@cdhowie此软件不提供更改端口的功能。我需要使用此
Ihaveasetupinwhichhostiswin8andguestonvirtualmachineisalsowin8.Runningwindbgonhostanddebugginguestonvirtualmachinethroghpipe.Nowiwanttoanalysehowadevicestackisbuiltinternallyforakeboard.Forthiswhenirun"!drvobjkbdclass"onwindbgitdoesntshowupanykeyboarddeviceobjectinguest,Belowistheoutputwhatigetk
我只是在Windows7崩溃转储上进行一些调试,我遇到了一个我无法完全理解的单链表。这是WinDBG的输出:dt_GENERAL_LOOKASIDE_POOLfffff80002a14800-b....0x000SingleListHead:_SINGLE_LIST_ENTRY+0x000Next:0x0000000000220001....从我读到的内容来看,似乎每个单链表都以一个列表头开头,其中包含一个指向列表中第一个元素的指针,如果列表为空,则为null。微软状态:MSDNarticleForaSINGLE_LIST_ENTRYthatservesasalistentry,the
(对我发布的类似问题感到抱歉,我已经对其进行了修改。)我正在尝试在WindowsXP上调试可执行的PE文件,以查看PDE和PTE在真实系统中的工作方式。我了解到windbg有一些命令可以查看详细信息。似乎!pte可以看到虚拟地址对应的PDE和PTE。但是我遇到了0:000>!pte找不到导出pte我做了一些谷歌工作,发现它是一个extensioncommand,但我没有看到有关如何启用这些扩展的任何说明。好像除了我,其他人都在直接用。我想知道我错过了什么,但我想不通。谁能给我一些建议?谢谢。 最佳答案 因为您使用的是xp本地内核调试
我有最新的windowsserver2008R2标准,多个人都有帐户。我最近在上面安装了Windbg。但是我无法运行,因为它给出了以下错误。请注意,我拥有的所有正版操作系统都完全与最新的安全更新保持同步。windbg.exe-EntryPointNotFound---------------------------TheprocedureentrypointRtlCopyContextcouldnotbelocatedinthedynamiclinklibraryntdll.dll.---------------------------OK-----------------------
我在WindowsInternals中读到,创建线程时,默认情况下为用户堆栈保留1MB的虚拟内存。在这1MB中,只有第一页(0x1000)将被提交。当我使用dumpbin.exe转储图像header时,我可以看到这一点。这是dumpbin显示的内容:但是,当我使用!address命令将此exe的地址空间转储到Windbg中时,我看到了不同之处。Windbg显示初始提交大小等于3页,即0x3000有谁知道为什么图像header和调试器显示的初始堆栈提交大小之间存在差异? 最佳答案 这是一个很好的问题,答案的关键是理解初始断点是什么。对
你好Stackoverflow社区,我正在尝试在Windows10上调试应用程序并要求Windows调试器框架加载符号以在(Windows内核调试器)kd中运行某些命令。每次我通过键入kd-kl在命令提示符下加载内核调试器(kd)(注意:您需要启用bcdedit-debug才能工作),我得到以下堆栈跟踪:Microsoft(R)WindowsDebuggerVersion10.0.14321.1024AMD64Copyright(c)MicrosoftCorporation.Allrightsreserved.ConnectedtoWindows1010240x64targetat(T
在windbg中,我正在寻找一种机制来获取命令的输出(特别是断点内的命令)并将其附加到文件中,不写入控制台。目前我使用.logappendC:\path\to\log设置进程,然后启用几个断点:bpWIN32U!{function}".echo'===WIN32K-START===';k;.echo'===WIN32K-END===';g"这很好用,除了写入控制台的输出量会导致严重的性能问题。我希望有一种方法可以获得相同的输出到我的日志文件,而无需写入windbg控制台的开销。 最佳答案 您需要.outmask元命令:https:/
我读了MSDN"usingsymbolserver"我正在尝试从Microsoft符号服务器下载符号。我的符号搜索路径:srv*C:\symbols*http://msdl.microsoft.com/download/symbols在WinDbg中我总是得到错误:*************SymbolLoadingErrorSummary**************ModulenameErrorntdllPDBnotfound:srv*c:\symbols*http://msdl.microsoft.com/download/symbolsUnabletolocatethe.pdbf
对于Windowsx64上的内核空间虚拟地址(VA>0xFFFF000000000000),从虚拟地址到物理地址的转换是如何工作的?我知道它如何用于用户空间虚拟地址:VA由多个表中的多个索引组成,第一个(PML4)位于存储在CR3寄存器中的物理地址(和过程DirectoryTableBase在WinDbg中也称为“DirBase”)。我猜这与内核空间VA类似,但是它们的PML4表在哪里?我的目标是在不依赖DbgEng/WinDbgAPI的情况下解析内核故障转储。我已经能够分辨出每个内存页在文件中的位置,但转储文件中的大多数字段都在内核空间VA中表示。该文件头中的DirectoryTab