Tag: windbg

没有整个WDK获得windbg?

有谁知道如何获得windbg的保留,而不必下载整个620MB的WDK ISO? 所有我可以在网上find下载debugging器是这个链接,说你必须得到整个WDK: http : //www.microsoft.com/whdc/devtools/debugging/default.mspx 。

如何在内存中find代表扫雷的矿井布局的数据结构?

我正在尝试学习逆向工程,使用扫雷作为示例应用程序。 我已经find了一个简单的WinDbg命令这个MSDN文章 ,揭示了所有的地雷,但它是旧的,没有详细解释,真的不是我正在寻找。 我有IDA Pro反汇编程序和WinDbgdebugging器 ,我已经加载winmine.exe到他们两个。 有人可以提供一些实用的技巧来find代表矿区的数据结构的位置吗? 在WinDbg中,我可以设置断点,但是我很难想象在什么时候设置断点以及在哪个内存位置。 同样,当我查看IDA Pro中的静态代码时,我不确定在哪里可以find表示矿区的函数或数据结构。 是否有任何反向工程师在Stackoverflow,可以指出我在正确的方向?

大对象堆碎片

我正在处理的C#/。NET应用程序正在遭受缓慢的内存泄漏。 我曾经使用CDB与SOS来确定发生了什么,但是这些数据似乎没有任何意义,所以我希望你们中的一个人可能以前经历过这种情况。 该应用程序在64位框架上运行。 它正在不断地计算和串行化数据到远程主机,并且正好击中大对象堆(LOH)。 但是,大多数的LOH对象我都希望是暂时的:一旦计算完成并被发送到远程主机,内存应该被释放。 然而,我所看到的是大量的(活)对象数组与交替的空闲块,例如,从LOH中随机select一个段: 0:000> !DumpHeap 000000005b5b1000 000000006351da10 Address MT Size … 000000005d4f92e0 0000064280c7c970 16147872 000000005e45f880 00000000001661d0 1901752 Free 000000005e62fd38 00000642788d8ba8 1056 <– 000000005e630158 00000000001661d0 5988848 Free 000000005ebe6348 00000642788d8ba8 1056 000000005ebe6768 00000000001661d0 6481336 Free 000000005f214d20 00000642788d8ba8 1056 000000005f215140 00000000001661d0 7346016 Free 000000005f9168a0 00000642788d8ba8 1056 000000005f916cc0 00000000001661d0 7611648 Free 00000000600591c0 00000642788d8ba8 1056 00000000600595e0 00000000001661d0 […]

无法在WinDbg中加载SOS

背景:我是WinDbg的新手,并试图让它第一次运行。 我想检查从Windows Server 2008(x86)上的IIS 7中承载的正在运行的ASP.NET 4站点获取的内存转储,并将其下载到本地计算机。 我安装了debugging工具,并首次启动WinDbg,打开崩溃转储。 我去了File | 符号文件path并将path设置为“* srv * c:\ symbols * http://msdl.microsoft.com/downloads/symbols*”,并等待所有符号加载。 当试图加载SOS时,我遇到了问题。 首先,我尝试了下面的命令 .loadby sos mscorwks …并收到回应“无法find模块”mscorwks“”。 淘宝网后,我试图通过执行以下命令加载mscorwks … sxe ld mscorwks.dll g …并收到响应“g中没有可运行的debugging错误” 我将SOS.dll(从C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319)复制到WinDbg目录,然后尝试… .load sos …并收到错误… The call to LoadLibrary(sos) failed, Win32 error 0n193 "%1 is not a valid Win32 application." […]

如何使用WinDbg来分析VC ++应用程序的崩溃转储?

如何使用WinDbg分析转储文件?

如何为.NET做一个好的崩溃转储?

我已经捕获了在64位Windows操作系统上运行的32位.NET应用程序的故障转储。 在分析过程中,有人发现我有一个64位转储,并告诉我,由于误位,不能分析这个转储。 当使用Windows任务pipe理器创build转储时,我不知道我做错了什么。 这一直适用于32位操作系统。 我怎么能把一个良好的转储,特别是在正确的位?

如何在WinDbg中设置符号?

我正在使用Windows的debugging工具,并且在启动WinDbg / cdb或ntsd时收到以下错误消息: Symbol search path is: *** Invalid *** **************************************************************************** * Symbol loading may be unreliable without a symbol search path. * * Use .symfix to have the debugger choose a symbol path. * * After setting your symbol path, use .reload to refresh symbol locations. * **************************************************************************** 执行任意命令时,我也会得到错误信息 *** ERROR: Module load completed […]