精华内容
下载资源
问答
  • WINDOWS法证版 安装说明 RAM MASTER (ALPHA) ------------------------------------------------------- ... VIRUS TOTAL INSTALLATION ...命令中心通过易变性进行法医调查和分析MICROSOFT WINDOWS内存转储文件。 用
  • Windows Dump转储文件

    2021-04-01 08:32:18
    Windows Dump转储文件Dump是什么?如何生成windows dump文件1.注册表2.读入数据总结 Dump是什么? 程序运行时在内存中的数据是动态和易失的,当程序发生崩溃的时候,把这些数据转储为静态的dump文件,这样我们就...


    Dump是什么?

    程序运行时在内存中的数据是动态和易失的,当程序发生崩溃的时候,把这些数据转储为静态的dump文件,这样我们就可以得到这些运行时数据。

    如何生成windows dump文件

    1. 注册表

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
    DumpFolder = %LOCALAPPDATA%\CrashDumps
    DumpCount = 10
    DumpType = 1
    

    2. 手动转储

    1. 打开任务管理器(Task Manager)
    2. 选中进程(Process)
    3. 右键转储为(Create Dump File)

    3. 代码 (推荐)

    应用崩溃时(Unhandled Exception),调用MiniDumpWriteDump 函数生成dump文件。

    1. SetUnhandledExceptionFilter (使能应用取代进程中的每个线程的顶层异常处理)

    2. MiniDumpWriteDump (写入用户模式的minidump到指定文件)

    #include <windows.h>
    #include <tchar.h>
    #include <DbgHelp.h>
    #pragma comment(lib, "dbghelp.lib")
    
    LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
    {
        // dump的文件句柄
        HANDLE hDumpFile = CreateFile(_T("mydump.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    
        // dump的异常信息
        MINIDUMP_EXCEPTION_INFORMATION dumpExInfo;
        dumpExInfo.ExceptionPointers = pException;
        dumpExInfo.ThreadId = GetCurrentThreadId();
        dumpExInfo.ClientPointers = TRUE;
    
        // 写入dump文件
        MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, (MINIDUMP_TYPE)MiniDumpNormal, &dumpExInfo, NULL, NULL);
    
        CloseHandle(hDumpFile);
        return EXCEPTION_EXECUTE_HANDLER;
    }
    
    int main()
    {
        //注册异常处理函数  
        SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);
    	
    	//模拟异常产生dump
    	int* p = NULL;
        *p = 0;
        
        return 0;
    }
    

    参考

    Collecting User-Mode Dumps
    SetUnhandledExceptionFilter Function
    MiniDumpWriteDump Function

    总结

    Dump是程序运行崩溃时非常重要的一种调试手段,通过dump文件和编译产生的pdb或者源文件,我们可以定位异常发生的位置。
    分析dump文件可以配合winDbg进行解析,但是需要同一版本的pdb文件,如果没有pdb文件,那么我们需要通过计算内存的偏移量来分析故障原因。

    展开全文
  • windows崩溃转储文件

    2010-08-24 10:53:27
    在默认情况下,所有的Windows系统都被设置为:当系统崩溃时,系统总是试图记录下有关当前系统的状态的信息。你可以通过用户界面看到这些设置,做法是,打开控制面板中的System工具,然后在System Properties对话框中...
        在默认情况下,所有的 Windows 系统都被设置为:当系统崩溃时,系统总是试图记录下有关当前系统的状态的信息。你可以通过用户界面看到这些设置,做法是,打开控制面板中的 System 工具,然后在 System Properties 对话框中,点击 Advanced 标签,然后点击 Startup And Recovery 按钮.
    对于一次系统崩溃,以下三种层次的信息可以被记录下来。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    完全内存转储   完全内存转储包含了在崩溃时刻所有的物理内存。这种转储类型要求页面文件至少是物理内存的大小再加上 1MB (用于记录头信息)。因为在大内存的系统上,它要求一个非常大的页面文件,所以,这种类型的转储文件是最少见的设置。 Windows NT 4 只支持这种类型的崩溃转储文件。这也是 Windows Server 系统的默认设置。

    内核内存转储   内核内存转储只包含了在崩溃时刻位于物理内存中的内核模式读 / 写页面。这种转储类型并不包含属于用户进程的页面。然而,因为只有内核模式的代码才可以直接导致 Windows 崩溃,所以,用户进程页面通常对于崩溃调试来说是不必要的。而且,所有与崩溃转储分析有关的数据结构,包括当前运行进程的列表、当前线程的栈,以及已加载驱动程序的列表,都被保存在非换页的内存中,它们也被记录在内核内存转储中。没有很好的办法来预测内核内存转储的大小,因为它的大小取决于该机器上操作系统和所有活动驱动程序已经分配的内核模式内存的数量。

    小内存转储   小内存转储(在 Windows Professional 上,这是默认设置)也称为小转储( minidump )或分类优先转储( triage dump ),它的大小为 64KB (在 64 位系统上为 128KB )。它包含了停止代码和参数、已加载的设备驱动程序的列表、描述当前进程和线程的数据结构(称为 EPROCESS ETHREAD ,见第 6 章的描述),以及引起此次崩溃的线程的内核栈。

    虽然完全内存转储是其他选项的超集,但是,它的缺点是,其大小达到了一个系统上所有物理内存的总量,因而变得很不实用。大的服务器系统有几 GB 物理内存的情形并不罕见,这样会导致崩溃转储文件太大,以致无法上载到 FTP 服务器上,或者被刻到 CD 上。因为在绝大多数的崩溃分析过程中,用户模式的代码和数据并没有被使用到(因为系统崩溃是由于内核内存中存在问题而引起的,并且,系统数据结构驻留在内核内存中),所以,在完全内存转储中保存的许多数据与分析并不相关,因而它们纯粹浪费了转储文件的空间。最后一个缺点是,引导卷( \Windows 目录所在的卷)上的页面文件的大小必须至少等于该系统中物理内存的数量再加上 1MB 。由于在一般情况下,所要求的页面文件的大小与实际物理内存的数量成反比例,因此,这一需求可能强迫页面文件变得不必要的大。你应该考虑小内存转储和内核内存转储这两种选项所提供的好处。

    小转储的一个好处是它的尺寸非常小,这使得它非常便于交换,比如通过电子邮件来交换。而且,每一次崩溃都会在 \Windows\Minidump 目录中生成一个文件,该文件有一个惟一的文件名,是由字符串 “Mini” 加上日期和一个序列号(比如 Mini082604-01.dmp )构成的。小转储的一个缺点是,为了对它们进行分析,你在分析时必须使用与生成该转储的系统上用到的相同映像文件(最起码, Ntoskrnl.exe 必须是相符的版本,以便进行最基本的分析)。如果你想在一个不同于生成某个转储的系统上分析该转储,那么这可能是一个问题。然而, Microsoft 的符号服务器包含了 Windows XP 系统及以后版本的映像(和符号),所以,你可以在调试器中设置映像路径,使它指向符号服务器,于是,调试器就会自动下载所需要的映像(当然, Microsoft 的映像服务器并不包含你所安装的第三方驱动程序的映像)。

    一个更重要的缺点是,由于在转储文件中只保存了很有限的数据,这可能会使得有效的分析难以进行。另外,即使你配置一个系统,并让它生成内核崩溃转储或完全崩溃转储,你也可以获得小转储的好处,你只需用 Windbg 来打开一个大的崩溃转储,然后用 .dump /m 命令提取出一个小转储。注意,在 Windows XP Windows Server 2003 上,小转储是自动创建的,即使系统被设置为完全转储或内核转储。

    注: 你可以在 Livekd 中,利用 .dump 命令生成当前活动系统的一个内存映像,因而你无需停止系统就可以离线地分析该系统。若一个系统虽然出现了一个问题但仍然在提供服务,而且你想在不打断该服务的情况下诊断此问题,那么,此时这种方法非常有用。结果得到的崩溃映像并不是完全一致的,因为不同内存区域的内容反映的是不同时间点上的情形,但是它可能包含了对于分析非常有用的信息。

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 内核内存转储方案提供了一种更切合实际的中间选择。因为它包含了所有的属于内核模式的物理内存,所以,它与完全内存转储具有同样层次的可分析数据,但是它省略了通常不相关的用户模式数据和代码,因此,它可以比完全内存转储小得多。举例来说,在一个具有 256MB RAM Windows XP 系统上,一个内核内存转储的大小为 34MB ;在另一个具有 1.5GB RAM Windows XP 系统上,一个内核内存转储达到了 72MB

    当你配置内核内存转储的时候,系统检查页面文件是否足够大(见表 14.1 ),但是,这些只是估计的大小值,因为没有办法可以预测一个内核内存转储的大小。之所以无法预测一个内核内存转储的大小,是因为它的大小取决于在崩溃时刻该机器的操作系统和所有活动驱动程序正在使用的内核模式内存的数量。

    14.1  针对内核转储的默认最小页面文件大小

    系统内存的大小

    针对内核转储的最小页面文件大小

    < 128 MB

    50 MB

    < 4 GB

    200 MB

    < 8 GB

    400 MB

    >= 8 GB

    800 MB

    因此,在崩溃发生时,因为页面文件太小而无法容纳一个内核转储,这是有可能的。如果你想要看一看自己系统上一个内核转储的大小,那么,你可以手工强制来一次崩溃,做法是,配置相应的选项以便你可以从控制台发起一次手工系统崩溃,或者使用本章后面将要讲述的 Notmyfault 工具(本章后面讲述了这两种方法)。当你重新引导时,你可以进行检查,以确保一个内核转储已经生成了,而且,你也可以检查它的大小以估算出你的引导卷页面文件应该设置为多大。为保险起见,在 32 位系统上,你可以选择 2GB 1MB 大小的页面文件,因为 2GB 是所有可用内核模式地址空间的最大值。

    最后,即使系统成功地在崩溃时刻将崩溃转储记录到页面文件中了,它还必须有足够的空闲磁盘空间来提取此转储文件。如果没有足够的磁盘空间,那么,崩溃转储就丢失了,因为在页面文件中用于保存崩溃转储的空间被释放了,随着系统开始使用此页面文件,这部分空间也将被覆盖掉。如果你在引导卷上没有足够的空间来保存 memory.dmp 文件,那么,你可以通过如图 14.3 中显示的对话框来选择任何其他本地硬盘上的某一个位置。

    崩溃转储的生成

    当系统引导时,它读取注册表值 HKLM\System\CurrentControlSet\Control\CrashControl ,以检查当前配置的崩溃转储选项。如果已经配置了一个转储,那么,它把用来写引导卷的磁盘小端口驱动程序在内存中做一份拷贝,并且赋予它一个与小端口相同的名称,前面加上 “dump_” 作为前缀。对于在写崩溃转储过程中涉及的组件,系统也计算它们的校验和,并且保存起来。这样的组件包括刚刚被拷贝的磁盘小端口驱动程序、执行崩溃转储写操作的 I/O 管理器函数,以及引导卷的页面文件在磁盘上的映射表。当 KeBugCheckEx 执行时,它再次计算这些组件的校验和,并且将新得到的校验和与引导时得到的校验和进行比较。如果两者不相符,那么它不再写崩溃转储文件,因为这样做可能会失败,或者破坏磁盘。如果两个校验和相匹配,那么, KeBugCheckEx 直接将转储信息写到由页面文件占据的磁盘扇区中,从而绕过了文件系统驱动程序(它可能已被破坏,甚至正是它导致了系统崩溃)。

    SMSS 在引导过程中启用换页机制时,系统检查引导卷的页面文件,看是否存在一个崩溃转储,并且将页面文件中被崩溃转储所占据的那部分保护起来。这使得在引导的早期阶段,引导卷页面文件的部分或全部是不可用的,从而可能会导致发出通知以显示 系统当前的虚拟内存过低 。当然,这一条件只是暂时的。后来,仍然在引导过程中, Winlogon 通过调用未文档化的 NtQuerySystemInformation API 来确定该页面文件中是否存在一个崩溃转储,如果存在崩溃转储,则激发 Savedump 进程( \Windows\System32\Savedump.exe ),以便从该页面文件中提取出此崩溃转储,并且将它拷贝到最终的位置上。这些步骤如图 14.4 所示。

     
     
    展开全文
  • 利用Windows内存转储文件对挥发性数据取证,张中文,曹天杰,本文给出了如何对挥发性内存数据进行取证获取有用信息,描述了崩溃转储的配置步骤和转储文件的分析过程。使用Microsoft Debugging Tools��
  • 何志丹 在任务管理器中选择此程序,右键菜单中选择“创建转储文件”,转储文件会放在临时目录(%temp%)

     何志丹

    在任务管理器中选择此程序,右键菜单中选择“创建转储文件”,转储文件会放在临时目录(%temp%)。

    注意:此操作后,选择的程序并不会退出。



    展开全文
  • I have file.sql, and I want to restore it. I found this command:mysql -u username -p database_name < file.sqlWhere should I put 'file.sql' in file ... I'm using Windows and XAMPP. Thank you.*) ...

    I have file.sql, and I want to restore it. I found this command:

    mysql -u username -p database_name < file.sql

    Where should I put 'file.sql' in file system? I'm using Windows and XAMPP. Thank you.

    *) The dump file is 3GB++

    解决方案

    When I execute the answers of this thread, it returns 'mysql' is not recognized as an internal or external command, operable program or batch file..

    Turned out that I have to execute mysql.exe first in xampp/mysql/bin folder, and the dump file path is relative to this bin folder. I put mine in there, and it worked.

    Thanks all.

    展开全文
  • 如何获取完整的内存故障转储文件: 默认情况下,操作系统创建小的内存转储dump文件不足以找出问题的原因,所以有些时候必须要创建一个完整的dump文件。配置方式如下: 右击我的电脑图标并选择属性〉高级〉启动...
  • EFS(Encrypting File System,加密文件系统)是Windows 2000/XP所特有的一个实用功能,对于NTFS卷上的文件和数据,都可以直接被操作系统加密保存,在很大程度上提高了数据的安全性。如果在特殊的情况下,不希望对某个...
  • windows程序中生成崩溃转储文件(.dmp)

    千次阅读 2013-05-27 09:51:34
    提供给用户使用的程序如果崩溃,如果能生成相应的转储文件,那么很容易定位出错原因 对于自己编写的win32程序,可以如下编写 __try { 逻辑代码 ... } __exception(ExceptionHandler(GetExceptionInformation...
  • jmap命令在windows平台和linux平台下用法不一样,本文说的是windows下的操作 先用jps找到目标进程的pid,比如是1345 ...那么就会得到一个heap.bin的转储文件,接下来就可以用MAT等工具对该转储文件进行分析
  • pedump 消息 2021.02.18 - updated gems; changed open-uri to URI.open;...2020.08.09 - CLI: added resource extracting with --extract ID ...Win32 PE二进制文件转储程序的纯ruby实现。 支持的格式:
  • 本文介绍如何使用 Sqldumper.exe 实用工具为 Watson 错误报告或为 Microsoft 产品支持服务 (PSS) 部门可能执行的调试任务生成转储文件。 更多信息 自 SQL Server 2000 Service Pack 3 (SP3) 起,Microsoft SQL...
  • 但是我的程序已经被设置为客户的计算机,所以我不能告诉他“当程序没有响应时你应该自己制作一个转储文件。 使用代码 要运行此程序,您需要使用cdb.exe文件。您可以在附件文件中找到。或者您可以在互...
  • Visual Studio 调试器中的转储文件 转储文件是一个快照,其显示某个时间点正在为应用执行的进程和已为应用加载的模块。 带堆信息的转储还包括该时间点的应用内存的快照。 在 Visual Studio 中打开带堆的转储文件类似...
  • 2、系统日志发现转储文件失败 3、最近换过固态硬盘(图文无关) solution 1、来自MS官方论坛的解决方法 亲测,不可用。。。。 最开始有修复成功,然后频率也少了些,不过后来还是有蓝屏发生。 您好! 建议您尝试...
  • 转储sql文件 In this article, we will talk about SQL Dump files and the process to change the dump directory in Linux SQL Server. 在本文中,我们将讨论SQL Dump文件以及在Linux SQL Server中更改转储...
  • 转储文件是啥,如何生成?

    千次阅读 2019-12-15 16:46:09
    文章目录转储文件是啥,如何生成?任务管理器参考链接 转储文件是啥,如何生成? 转储文件也就是常说的dump文件。 可以把转储文件看成软件的某个时刻的一个快照。 转储文件一般都是在软件出现问题时手动生成或者...
  • 1.打开windows任务管理器,找到崩溃的进程,右键=》创建转储文件 2.打开vs。文件=》打开=》文件。打开你刚才导出的文件: 上面的图是打开后的界面,有比较基础的信息统计。我们可以看到进程框架那一项,是64位...
  • 3.10 转储文件 3.10.1 概述 转储文件是一个快照,它显示正在执行的进程和某个时刻为应用程序加载的模块。转储文件带有堆信息的转储还包括应用程序在该点的内存快照。 在Visual Studio中使用堆打开转储文件类似于...
  • 原总结debug调试dump转储文件windbgprocdump如果你还不清楚什么是转储文件,不知道什么时候需要转储文件,请参考转储文件系列文章的第一篇 —— 转储文件知多少。 前言 细心的小伙伴可能注意到了,我在上一篇...
  • 调试存储器转储文件

    千次阅读 2006-04-27 22:23:00
    概要本文分步介绍了如何检查小存储器转储文件。使用该文件,可以确定计算机停止响应的原因。小存储器转储文件小存储器转储文件记录可帮助确定计算机为什么意外停止的最小的有用信息集。此选项要求启动卷上有一个至少...
  • 修改windows注册表,用于Qt的debug和release版本包闪退等情况时,获取核心文件
  • 内存分析器变体 IBM Java监视和诊断工具-内存分析器通过使用IBM Java诊断工具... DTFJ使用操作系统级转储和IBM可移植堆转储来启用Java堆分析。 IBM变体是IBM Support Assistant(ISA)的一部分。 DTFJ插件可用于...
  • 如果系统出现频繁的蓝屏和重启,则需要注意了,这个时候分析蓝屏原因就需要崩溃当时的内存转储文件。 首先当然是要配置好转储文件。 (1)WIN+R 输入sysdm.cpl打开系统属性。 找到高级选项,启动和故障恢复中的设置...
  • 【DUMP】系统转储文件

    2019-08-19 16:40:32
    分类 完整转储 内核转储 小型内存转储 以上三种类型的文件大小依次递减,包含的信息量也是依次...完整转储包含产生转储时物理内存中的所有数据,其文件大小通常比物理内存的容量还要大 内核转储去除了用 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,799
精华内容 9,519
关键字:

windows转储文件