本文目录
- 调试逆向windbg怎么dump出一段内存?
- win10系统dump日志文件怎么打开?
- windbgpreview怎么用?
- Win10系统dump日志文件如何获取?
- 电脑里的WinDbg安装到哪个文件夹了?
调试逆向windbg怎么dump出一段内存?
Windbg生成dump文件的方法:
程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。 步骤:
1) 打开WinDBG并将之Attach 到crash的程序进程
2) 输入产生dump 文件的命令
WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump文件。
选项(1): /m
命令行示例:.dump /m C:\dumps\myapp.dmp
注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。
选项(2): /ma
命令行示例:.dump /ma C:\dumps\myapp.dmp
注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。
选项(3):/mFhutwd
命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp
注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案
那怎么自动生成dump文件呢,比如对方的电脑没有windbg,这里用到一个window系统自带工具,Dr.Watson
运行方式很简单:
直接run-输入drwtsn32 -i就可以了,会提示这样的:
这个命令真难记,实话,记华生医生吧,福尔摩斯中的
如果有程序崩溃,会自动生成dump,这时再输入drwtsn32就会运行这个程序:
找到对应路径的DMP文件就行了,一般放在如下路径:
C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson
以下实例来自AWD
代码:
Copyright (c) Advanced Windows Debugging (ISBN 0321374460) from Addison-Wesley Professional. All rights reserved.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE.
--*/
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
VOID SimulateMemoryCorruption ( ) ;
class CAppInfo
{
public:
CAppInfo(LPWSTR wszAppName, LPWSTR wszVersion)
{
m_wszAppName=wszAppName;
m_wszVersion=wszVersion;
}
VOID PrintAppInfo()
{
wprintf(L"\nFull application Name: %s\n", m_wszAppName);
wprintf(L"Version: %s\n", m_wszVersion);
}
private:
LPWSTR m_wszAppName ;
LPWSTR m_wszVersion ;
} ;
CAppInfo* g_AppInfo ;
int __cdecl wmain (int argc, WCHAR* args[])
{
wint_t iChar = 0 ;
g_AppInfo = new CAppInfo(L"Memory Corruption Sample", L"1.0" );
if(!g_AppInfo)
{
return 1;
}
wprintf(L"Press: \n");
wprintf(L" 1 To display application information\n");
wprintf(L" 2 To simulated memory corruption\n");
wprintf(L" 3 To exit\n\n\n>");
while((iChar=_getwche())!='3')
{
switch(iChar)
{
case '1':
g_AppInfo->PrintAppInfo();
break;
case '2':
SimulateMemoryCorruption();
wprintf(L"\nMemory Corruption completed\n");
break;
default:
wprintf(L"\nInvalid option\n");
}
wprintf(L"\n\n> ");
}
return 0;
}
VOID SimulateMemoryCorruption ( )
{
char* pszWrite="Corrupt";
BYTE* p=(BYTE*) g_AppInfo;
CopyMemory(p, pszWrite, strlen(pszWrite));
}
win10系统dump日志文件怎么打开?
系统服务异常:
一般解决办法:杀毒,重装系统,看是否解决;
二般解决方法:Win+R, 打开系统日志,点击管理事件,找到导致蓝屏的致命错误(显示为一个红色叉),可以看到是那个模块有问题
3. 三般解决方法:下载Windbg,打开蓝屏时候的Crash dump, 可以看到详细的崩溃信息;dump文件在如下位置:
windbgpreview怎么用?
Windbgpreview是一种调试工具,它可用于分析Windows应用程序的崩溃和异常。以下是使用Windbgpreview进行分析的步骤:
1. 在计算机上安装Windbgpreview:你可以在微软的官网上下载Windbgpreview,并按照安装提示进行安装。
2. 在Windbgpreview中打开要调试的进程:在Windbgpreview中点击“File”菜单,选择“Open dump file”,然后选择导出的进程文件,即可打开要调试的进程。
Win10系统dump日志文件如何获取?
Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump/maC:\testdump.dmp
其中的/ma参数表示dump文件应该包含进程的完整信息,包括整个用户态的内存,这样dump文件尺寸会比较大,信息非常全面。如果不使用/ma参数,保存下来的dump文件只包含了部分重要资料,比如寄存器和线程栈空间,文件尺寸会比较小,无法分析所有的数据。
在Windbg中,通过File→OpenCrashDump菜单可以打开dump文件进行分析。打开dump文件后,运行调试命令看到的信息和状态,就是dump文件保存时进程的状态。通过dump文件能够方便地保存发生问题时进程的状态,方便事后分析。
dump还是oracle及SQL数据库中导出的数据文件。可以备份数据,并可以实现后期的导入。
.
下载BlueScreenView,运行它就会自动读取C:\Windows\minidump\*.dmp操作系统蓝屏记录转储文件.
电脑里的WinDbg安装到哪个文件夹了?
先要看是哪个驱动导致的,在Windows目录下有一个minidump文件夹,找到最后一次的. dmp文件,用WinDbg打开看看,Windbg在微软网站上可以下载